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