如何从存储过程返回值列表?

时间:2010-08-26 03:47:27

标签: sql tsql stored-procedures

我正在调用另一个存储过程的存储过程,我需要它返回类似数组的东西。我该怎么办?

2 个答案:

答案 0 :(得分:1)

我建议你看看Sommarskogs homepage on Arrays and Lists in SQL Server吗?

他的主页上充满了信息,所以请花几个小时阅读所有内容。但是从这个链接开始。它只有大约60个屏幕已满;-)
恕我直言,它涵盖了存储过程之间传递信息的一切。强烈推荐。而你真的只需阅读前几页。

答案 1 :(得分:0)

您可以使用临时表或实际表格执行此操作。请注意(不幸的是)它不适用于表变量。

设置你的表格:

CREATE TABLE #Foo (Bar NVARCHAR(50), BAZ INT)

然后你的存储过程:

CREATE PROCEDURE [GetFoo] AS
BEGIN
    SELECT [BarCol], [BazCol] FROM [BarBazSource]
END

然后使用EXEC T-SQL命令:

INSERT #Foo EXEC [GetFoo]

您的#Foo临时表现在包含[GetFoo]存储过程的输出。

有关详细信息,请参阅此处的MSDN文章:"Getting Creative with EXEC and EXEC()"