sql-server – 在SQL Server中创建可以保存存储过程结果的临时表的最简单方法是什么?

在处理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')

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03