我有以下两个程序
1)PROC_A在执行时给出两个表,例如Table1和Table2
2)在PROC_B中我需要将执行PROC_A返回的Table1的内容插入到PROC_B内的temptable中,TABLE1的列可能会改变
我在PROC_B中尝试这样的东西
INSERT INTO #tem1 FROM EXEC PROC_A
我怎么能这样做呢?
答案 0 :(得分:0)
如果您的临时表已经定义,那么您可以
INSERT INTO #tem1
EXEC PROC_A
如果没有,
sELECT * INTO #tem1
FROM OPENROWSET('SQLNCLI', 'server=(local);trusted_connection=yes',
'your query')
您还需要启用ADhoc分布式查询才能使开放查询正常工作..
sp_configure 'show advanced options', 1
reconfigure
go
sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure
您还可以在2012年使用描述结果集DMV,查看为查询返回的数据类型。想法是将描述结果集的输出插入到临时表中并动态构建一个..如果您的SP结果是两个结果集,请注意,只有一个会被退回..
sp_describe_first_result_set @tsql = N'SELECT object_id, name, type_desc FROM sys.indexes'
答案 1 :(得分:0)
CREATE TABLE #tmp
(
Col1 SMALLINT,
Col2 SMALLINT,
Col3 SMALLINT,
Col4 SMALLINT,
Col5 SMALLINT,
.
.
.
)
INSERT INTO #tmp
EXEC PROC_A
SELECT * FROM #tmp
Drop table #tmp
这对你有用......