1

我有一个返回值的存储过程(例如GetData:)

如何在另一个函数中声明一个变量来获取这个值?

像这样的东西

Create Function Test
Return Int
Begin
    Declare @data My_Data_Type
    Declare @count int
    SET @data = exec GetData
    Select @count = count(*)
    From @data

    Return @count
End

请帮我 !!!!

4

2 回答 2

5

如果您的存储过程返回表然后执行

declare @data as table(col1 int, col2 varchar(50))

insert into @data exec GetData

Select @count = count(*) from @data

如果要返回标量值,例如 int、varchar,请使用 OUTPUT 参数

CREATE PROC GetData
(
   @retVal int OUTPUT
)
AS
BEGIN
     SET @retVal = 123

     Return 0
END

然后以这种方式检索它

 declare @data int
 EXEC GetData @data OUTPUT
于 2012-09-29T07:56:05.720 回答
0

看看使用带有输出参数的存储过程

您可以调用的 SQL Server 存储过程是一个返回一个或多个 OUT 参数的存储过程,这些参数是存储过程用于将数据返回给调用应用程序的参数。

使用 OUTPUT 参数返回数据

如果在过程定义中为参数指定 OUTPUT 关键字,则存储过程可以在存储过程退出时将参数的当前值返回给调用程序。要将参数的值保存在调用程序可以使用的变量中,调用程序在执行存储过程时必须使用 OUTPUT 关键字。

于 2012-09-29T07:51:58.147 回答