Sql server 获取proc的select输出的架构

Sql server 获取proc的select输出的架构,sql-server,sql-server-2005,tsql,Sql Server,Sql Server 2005,Tsql,我想将存储过程的结果放入临时表中。似乎必须事先定义临时表,插入将不起作用 有人知道如何获取从select语句返回的记录集的模式吗 sp_帮助仅获取有关参数的信息。您应该能够插入临时表,而无需使用OPENQUERY定义架构: SELECT * INTO #TempTable FROM OPENQUERY(ServerName, ‘EXEC DataBaseName.dbo.StoredProcedureName paramvalues1, paramvalues1′) 其中ServerName是

我想将存储过程的结果放入临时表中。似乎必须事先定义临时表,插入将不起作用

有人知道如何获取从select语句返回的记录集的模式吗


sp_帮助仅获取有关参数的信息。

您应该能够插入临时表,而无需使用OPENQUERY定义架构:

SELECT * INTO #TempTable
FROM OPENQUERY(ServerName, ‘EXEC DataBaseName.dbo.StoredProcedureName paramvalues1, paramvalues1′)

其中ServerName是Sql Server实例的名称。有关更多信息,请参见。您能否在查询窗口中执行包括插入在内的逻辑内容?这将生成一个临时表,您可以将其用作模型

最糟糕的情况是,您只需手动构建一次模式,如果您是编写SP的人,那么这应该不会很繁重


为了便于将来编写文档,我还是喜欢在SPs中手工编写DDL。在调试时,明确地将架构放在手边会很有帮助。

如果可以,将存储过程更改为用户定义的函数


有时您只需要知道模式,而不需要创建表。此命令输出结果集的结构,而不实际执行存储过程

自2015年4月16日起,摘自Microsoft SQL Server论坛文章:


就像我说的,插入似乎不起作用。也许我做错了什么,但我对此表示怀疑。>>最糟糕的情况是,您只需手动构建一次模式,如果您是编写SP的人,那么这应该不会很繁重。我不编写模式,正在寻找一种简单的方法。请解释一下您的意思,因为它似乎不起作用。你不能进入吗?对任何查询都不起作用?你能试试吗?返回了什么错误?您的查询是什么样子的?您认为这应该有效吗?从EXEC sp_who选择*进入sp_who支持任何其他数据库,然后选择master,因为它仅在master表中工作
SELECT * FROM sys.dm_exec_describe_first_result_set ('owner.sprocName', NULL, 0) ;