Sql 存储存储过程输出

Sql 存储存储过程输出,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我需要将存储过程的输出存储在表中 问题是我的程序的输出是一个70字段的表 因此,在存储过程的输出之前,我无法创建表 因为这需要很多努力。 我需要类似于从表名称中选择*进入表的解决方案 witch自动创建表存储过程必须使用一些select*from。。语句以生成此输出。您可以修改它,对吗?我在以下链接找到了解决方案: 因此,为了存储存储过程的输出,我们需要使用OPENROWSET函数 但在使用它之前,我们必须启用显示高级选项和 即席分布式查询解决方案如下: 对于参数,我可以将它们作为字符串添加到p

我需要将存储过程的输出存储在表中 问题是我的程序的输出是一个70字段的表 因此,在存储过程的输出之前,我无法创建表 因为这需要很多努力。 我需要类似于从表名称中选择*进入表的解决方案
witch自动创建表

存储过程必须使用一些select*from。。语句以生成此输出。您可以修改它,对吗?

我在以下链接找到了解决方案: 因此,为了存储存储过程的输出,我们需要使用OPENROWSET函数 但在使用它之前,我们必须启用显示高级选项和 即席分布式查询解决方案如下:

对于参数,我可以将它们作为字符串添加到procedure revoke语句中


我想你想要OPENROWSET。退房:

请注意,这些示例尚未经过测试

--Example for master.dbo.sp_who
SELECT * INTO #TempSpWho
FROM OPENROWSET ('SQLOLEDB','Server=(local);
                  TRUSTED_CONNECTION=YES;',
                 'set fmtonly off exec master.dbo.sp_who')
资料来源:

此外,如果SP有参数,则需要编写动态SQL:

DECLARE @testVariable varchar(10);
SET @testVariable = 'varTest';
EXEC( 'SELECT * INTO #TempSpWho
       FROM
       OPENROWSET(
         ''SQLNCLI'',
         ''Database=dbIDsAndNames;Uid=sa;Pwd=nosecurity;'',
         ''SET FMTONLY OFF
         EXEC [dbo].[mySproc] ''' + @testVariable + ''')') 
资料来源:

注意:上面的例子都不是我原创的,所以如果你的作品是源代码的话,那就要归功于源代码了

如果您手动构建临时表,即对所有70行都不感兴趣,则该方法为:

CREATE TABLE #foo(
  [bar] int,
  baz varchar(123)
)
insert into #foo exec spDoSomething
select * from #foo
drop table #foo

是的,但是这个程序需要一些参数,所以每次我使用这个程序时,输出都是不同的。不要害怕,我的朋友,我们得到了答案,也许这对解决问题没有帮助;很高兴你弄明白了。
DECLARE @testVariable varchar(10);
SET @testVariable = 'varTest';
EXEC( 'SELECT * INTO #TempSpWho
       FROM
       OPENROWSET(
         ''SQLNCLI'',
         ''Database=dbIDsAndNames;Uid=sa;Pwd=nosecurity;'',
         ''SET FMTONLY OFF
         EXEC [dbo].[mySproc] ''' + @testVariable + ''')') 
CREATE TABLE #foo(
  [bar] int,
  baz varchar(123)
)
insert into #foo exec spDoSomething
select * from #foo
drop table #foo