繁体   English   中英

如何从存储过程插入到临时表

[英]How to Insert Into a temptable from a stored procedure

我有以下两个过程

1)PROC_A在执行时会给出两个表,例如Table1和Table2

2)在PROC_B中,我需要将通过执行PROC_A返回的表1的内容插入到PROC_B内部的一个临时表中,TABLE1的列可能会更改

我正在PROC_B中尝试类似的操作

 INSERT INTO #tem1 FROM EXEC PROC_A

我该怎么办?

如果您的临时表已经定义,那么您可以

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,以查看查询返回的数据类型。其想法是将描述结果集的输出插入到temp表中,并动态地构建一个。将被退回..

sp_describe_first_result_set @tsql = N'SELECT object_id, name, type_desc FROM sys.indexes'
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

这为您工作...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM