SQL - 如何将 Stored_Proc 的结果插入到新表中而不指定新表的列?

标签 sql sql-server-2005 stored-procedures

使用 SQL Server 2005,我想运行一个存储过程并将所有结果插入到一个新表中。

我希望新表能够根据存储过程返回的数据自动配置其列。

我熟悉使用 SELECT ... INTO 语法:

SELECT * INTO newtable FROM oldtable

这可能吗?

编辑澄清:我希望完成类似的事情:

Select * INTO newtable FROM exec My_SP

最佳答案

执行此操作的唯一方法是针对本地服务器使用 OPENROWSET:

SELECT * INTO #temp 
FROM OPENROWSET (
    'SQLOLEDB'
  , 'Server=(local);TRUSTED_CONNECTION=YES;'
  , 'SET FMTONLY OFF EXEC database.schema.procname'
  ) a

但这是一种最后一搏,必须做该死的后果的方法。它需要提升权限,不适用于所有过程,而且通常效率低下。

更多信息和一些替代方案在这里:http://www.sommarskog.se/share_data.html

关于SQL - 如何将 Stored_Proc 的结果插入到新表中而不指定新表的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2249166/

相关文章:

sql-server-2005 - 出现错误 430 : Automation error

sql-server - 触发器未将数据放入历史表中

sql - 按多列排序

c# - 通过接受来自文本框的值来重命名字段名称...它显示 "Unclosed quotation mark after the character string ' '

php - MySQL如何将表中的数据直接检索到变量?

sql - 将键值列分组为每组一行,每个键列

mysql - JOIN 具有不同值的键

c# - MSSQL参数消耗更多时间

php - 是否可以从存储过程中调用 PHP 文件?

mysql - 将 `show create procedure procedure_name` 的结果存储到 MySql 中的一个变量中