INSERT INTO可变列数

时间:2016-03-08 15:38:05

标签: sql-server

EXEC结果返回的列数未知。

INSERT INTO #FullTempClr ([Id], [Value1],[Value2], ..., [Value11])
EXEC [report].[TestReport] @Id

Howerver,有时TestReport返回Id和10个值,有时是Id和11,有时是Id和1值。如果只有Valu1可用,我们需要将null或0放入其他值。是否可以在此级别上执行此操作,或者唯一的方法是修改[report] .TestReport?

SQL Server 2008 r2

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是将所有逻辑封装到存储过程中,或者你可以使用这样的东西:

SP_CONFIGURE 'show advanced options',1
GO
RECONFIGURE
GO
SP_CONFIGURE 'Ad Hoc Distributed Queries',1
GO
SELECT * INTO #TempTable 
FROM OPENROWSET
('SQLNCLI','Server=YourLocalServer;Trusted_Connection=yes;',
    'EXEC YourStoredProcedure')
GO
SELECT * FROM #TempTable
GO
DROP TABLE #TempTable

您还可以查看此帖Stored Procedure with dynamic result into temp table