2010-08-26 61 views
0

嗯,我从另一个存储过程调用存储过程,我需要它返回类似于数组的东西。我该怎么做?如何从存储过程返回值列表?

+2

“像一个数组”? – 2010-08-26 03:49:24

+0

以及我知道他们没有实现,但我需要找到 – Emre 2010-08-26 03:52:57

+1

你可以用一个表来代替..你能详细说明你需要做什么吗? – 2010-08-26 03:55:57

回答

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()"

+0

thx这将有所帮助 – Emre 2010-08-26 05:20:47

1

我可以建议你看一看Sommarskogs homepage on Arrays and Lists in SQL Server

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