SQL-笔记:如何将存储过程结果插入临时表
已知有存储过程pd_GetData ,返回结果集为 (col1、col2),在数据库中想实现,调用存储过程后将结果集保存在临时表#tmp1
- 方法1使用openrowset
-- 先启用Ad Hoc Distributed Queries
exec sp_configure ‘show advanced options‘, 1;
RECONFIGURE;
exec sp_configure ‘Ad Hoc Distributed Queries‘, 1;
RECONFIGURE;
GO
```sql
select into #tmp1 from openrowset('SQLNCLI',
'Server=.;Trusted_Connection=yes;',/*如果是本机*/
'exec pd_GetData ''varl'' )
select into #tmp1 from openrowset('SQLNCLI',
'Server=.;uid=sa;pwd=Password;database=DBName',/*非本机*/
'exec pd_GetData ''varl'' )
```注意:本方法只只用于存储过程返回列确定的情况,对于存储过程中执行动态sql需要with result set 。
2、方法2、先create 临时表 #tmp1,然后将执行存储过程执行后的数据insert 到#tmp1
Create Table #tmp
(col1 int,
col2 varchar(10))
insert into #tmp1
exec pd_GetData 'varl1'
`
该方法对于可适用于任意存储过程