SQL Server:将存储过程的多表输出插入到单独的表中

SQL Server:将存储过程的多表输出插入到单独的表中,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我有一个存储过程,它返回几个表(当前由web服务使用)。我现在需要将该输出插入SQL Server数据库 如果我知道现有的定义,我可以通过 INSERT INTO #temp EXEC ('myProcSQlhere') 但为此,我需要提前知道输出表的定义 SELECT * INTO #temp FROM OPENQUERY(SERVERNAME, 'EXEC myProcSQlhere') 它可以绕过表定义,但只允许进入一个表。那么如何将数据插入多个表呢?存储过程只能返回一个值。存

我有一个存储过程,它返回几个表(当前由web服务使用)。我现在需要将该输出插入SQL Server数据库

如果我知道现有的定义,我可以通过

INSERT INTO #temp
    EXEC ('myProcSQlhere')
但为此,我需要提前知道输出表的定义

SELECT *
INTO #temp
FROM OPENQUERY(SERVERNAME, 'EXEC myProcSQlhere')

它可以绕过表定义,但只允许进入一个表。那么如何将数据插入多个表呢?

存储过程只能返回一个值。存储过程所做的是执行多个选择,从而给出多个结果集。这适用于可以使用多个结果集,但仍停留在SQL Server中的系统

检查存储过程是否尚未为每个结果集调用独立的存储过程,如果是,则调用这些存储过程。或者使用存储过程的定义并按顺序调用其中使用的每个查询


如果您无法访问提供存储过程的系统,则需要实现一个并将结果存储到不同的表中。

这适用于可以使用多个结果集但您卡在SQL Server中的系统。
。哪些系统?我目前从vb查询结果集。结果集中只有几个表。从那里开始,它工作得非常好。问题是我现在需要在SQL中使用它做更多的工作,并且不知道如何在1之后访问表。这就是这个答案的要点,在SQL中,您无法获取下一个表,只能获取第一个表。