加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 在SQL Server中创建可以保存存储过程结果的临时表

发布时间:2021-01-12 22:10:36 所属栏目:MsSql教程 来源:网络整理
导读:在处理SQL Server时,我需要多次编写类似下面的内容. create table #table_name( column1 int,column2 varchar(200) ...)insert into #table_nameexecute some_stored_procedure; 但是创建一个具有确切语法的表,因为存储过程的结果是一项繁琐的任务.例如, sp_h

在处理SQL Server时,我需要多次编写类似下面的内容.

create table #table_name
(
    column1 int,column2 varchar(200)
    ...
)

insert into #table_name
execute some_stored_procedure;

但是创建一个具有确切语法的表,因为存储过程的结果是一项繁琐的任务.例如,sp_helppublication的结果有48列!我想知道是否有任何简单的方法可以做到这一点.

谢谢.

解决方法

如果该过程只返回一个结果集并且启用了 ad hoc distributed queries选项.
SELECT * 
INTO #T 
FROM OPENROWSET('SQLNCLI','Server=(local)MSSQL2008;Trusted_Connection=yes;','SET FMTONLY OFF;EXEC sp_who')

或者您可以设置一个环回链接服务器并使用它.

EXEC sp_addlinkedserver @server = 'LOCALSERVER',@srvproduct = '',@provider = 'SQLNCLI',@datasrc = @@servername

SELECT *
INTO  #T
FROM OPENQUERY(LOCALSERVER,'SET FMTONLY OFF;
               EXEC sp_who')

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读