我有一个存储过程,可以动态生成数据结果,为行defs传递sql,将列传递给pivot,将aggregate(字段)传递给sum,以及聚合的表名。这很好用,但我需要根据这些结果生成一个表格,以便用于进一步的计算。
如何在不知道输出列的情况下将结果动态保存到存储过程(临时或非临时)中的表中?
答案 0 :(得分:1)
SELECT *
INTO #TempTable
FROM (Pivot Expression)
这将创建一个#TempTable,其中包含FROM子句中的所有结果,无论列的数量/类型如何。
答案 1 :(得分:0)
你没有问,但这就是我从视图中获取一组列名的方式:
DECLARE @columns VARCHAR(1000)
SELECT @columns = COALESCE(@columns + ',[' + cast(fld as varchar) + ']',
'[' + cast(fld as varchar)+ ']')
FROM view
GROUP BY fld