SQL-笔记:如何将存储过程结果插入临时表

SQL-笔记:如何将存储过程结果插入临时表

已知有存储过程pd_GetData ,返回结果集为 (col1、col2),在数据库中想实现,调用存储过程后将结果集保存在临时表#tmp1

  1. 方法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'
`
该方法对于可适用于任意存储过程
 



    原文作者:植物杀手王大爷
    原文地址: https://blog.csdn.net/miawxm/article/details/105221796
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞