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