2012-09-29 42 views
1

我已經返回一個值(例如:GetData)存儲過程如何從存儲過程中插入值變量函數在SQL Server

我怎樣才能在另一個函數聲明一個變量來得到這個值?

像這樣的事情

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 

請幫我!!!!

回答

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 
0

看一看Using a Stored Procedure with Output Parameters

一個SQL Server存儲過程,你可以調用是一個返回 一個或多個OUT參數,它們是存儲 過程使用要返回數據的參數調用應用程序

而且Returning Data by Using OUTPUT Parameters

如果您指定的程序 定義參數OUTPUT關鍵字,存儲過程可以在 參數的當前值返回給調用程序時存儲的過程退出。若要 將參數值保存在調用程序中可用的變量中,調用程序在執行存儲過程時必須使用OUTPUT關鍵字。

相關問題