美好的一天StackOverflow從動態sql訪問動態表
從我的動態sql創建的表可以具有任意數量的列,因爲它是數據透視表。
-- Pivot the table so we get the UW as columns rather than rows
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = '
SELECT *
FROM #PreProcessed
PIVOT (SUM(Quotes)
FOR [UW] IN (' + @UWColumns + ')
) AS bob'
我運行這段代碼來運行我的動態sql。
EXEC sp_executesql @SQL,
N'@UWColumns nvarchar(MAX)',
@UWColumns
我的問題是,我如何存儲結果表?特別是當我不知道它會有多少列時,甚至不知道列將被調用?
我嘗試下面的代碼,但它不工作
INSERT INTO #Temp
EXEC sp_executesql @SQL,
N'@UWColumns nvarchar(MAX)',
@UWColumns
謝謝大家
您可能需要創建一個真正的表格。在'sp_exectutesql'之外創建的臨時表將在in中有作用域,但其中創建的任何臨時表(臨時表,變量等)將在作用域返回到調用代碼時解除分配。所以,動態SQL創建一個表,以及動態SQL來填充它。或者,重新考慮您的代碼以使用源(標準化)數據。 – MatBailie