我需要一些帮助
我的目标:
我在存储过程中有一个@query
,它运行正常。现在我必须在同一存储过程中从@query
执行返回表上执行更多操作。例如,我必须在返回表中添加更多列,并从更多查询中添加新数据。
我的问题:
我无法将表格形式(EXEC sp_executesql
)返回到变量(@TempTable
)中。还有一个问题是返回的列数是未知的(动态的)。
步骤应该是这样的:
TempTable
TempTable
请指导我
答案 0 :(得分:0)
这可以使用如下的全局临时表来实现:
DECLARE @sql NVARCHAR(1000)
DECLARE @Column NVARCHAR(1000)
SET @Column = 'YouColumnList' -- id,name etc. created by you dynamically.
IF( Object_id('tempdb..##IntermediateTable') IS NOT NULL )
DROP TABLE ##IntermediateTable
SET @sql = '
SELECT ' + @Column + '
Into ##IntermediateTable
FROM YourTable
WHERE id = 123
'
EXEC sp_executesql
@sql
IF( Object_id('tempdb..#temptable') IS NOT NULL )
DROP TABLE #temptable
SELECT *
INTO #temptable
FROM ##IntermediateTable
IF( Object_id('tempdb..##IntermediateTable') IS NOT NULL )
DROP TABLE ##IntermediateTable
SELECT *
FROM #temptable --resulting temptable to use. alter it or do whatever desired.