Sql server Microsoft SQL Server 2005从返回多个表的子过程插入表

Sql server Microsoft SQL Server 2005从返回多个表的子过程插入表,sql-server,stored-procedures,Sql Server,Stored Procedures,我有一个子过程,它返回的不仅仅是表 儿童: PROCEDURE KevinGetTwoTables AS BEGIN SELECT 'ABC' Alpha, '123' Numeric SELECT 'BBB' Alpha, '123' Numeric1, '555' Numeric2 END 例如: PROCEDURE KevinTesting AS BEGIN DECLARE @Table1 TABLE ( Alpha varchar(50),

我有一个子过程,它返回的不仅仅是表

儿童:

PROCEDURE KevinGetTwoTables
AS BEGIN
    SELECT 'ABC' Alpha, '123' Numeric

    SELECT 'BBB' Alpha, '123' Numeric1, '555' Numeric2
END
例如:

PROCEDURE KevinTesting
AS BEGIN
    DECLARE @Table1 TABLE (
        Alpha varchar(50),
        Numeric1 int
    )
    DECLARE @Table2 TABLE (
        Alpha varchar(50),
        Numeric1 int,
        Numeric2 int
    )

    --INSERT INTO @Table1
    EXEC KevinGetTwoTables
END

据我所知,无法在T-SQL中捕获第二个结果集


您可以从一个。您将无法在父过程中捕获两个结果集,就像在临时表中捕获一个结果集一样。但是,还有其他几种选择。读这篇优秀的文章

如果您使用的是SQL Server 2008,请参阅上的部分。您可以将表作为输出参数传递回父级

如果您不在SQL Server 2008上,请查看


基本上,在父过程中创建两个#tettables,在子过程中填充每个#tettables并终止子过程。回到父过程后,每个#tentable都有数据。

在这里打个问号,否则人们会发疯。如果无法更改子过程,则使用CLR是好的: