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