TSQL两种执行字符串SQL的方法

1.  EXEC (@SQL)  

     不可传入参数

2.  EXEC sp_executesql   可传入参数

declare @colsForTempTable AS NVARCHAR(MAX),  

select @colsForTempTable =  STUFF((SELECT  ',' + ISNULL(QUOTENAME(Period),0) + ' DECIMAL(21,9)' FROM #Periods   
       FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') ,1,1,'')  
SET @colsForTempTable = 'PF NVARCHAR(100),PID NVARCHAR(max),Supplier NVARCHAR(max),Item NVARCHAR(30),  
    Bts NVARCHAR(4),Ct2r Decimal(21,9),LifeStatus NVARCHAR(30),Ss Decimal(21,9),oh Decimal(21,9),OptType NVARCHAR(20),' + @colsForTempTable  
         
SET @colsForTempTable = 'ALTER TABLE #Forecast ADD ' + @colsForTempTable  

EXEC sp_executesql @colsForTempTable   

猜你喜欢

转载自blog.csdn.net/chpllp/article/details/107420584