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

出力パラメータでのストアドプロシージャの使用をご覧ください

呼び出すことができるSQLServerストアドプロシージャは、1つ以上のOUTパラメータを返すものです。これは、ストアドプロシージャが、呼び出し元のアプリケーションにデータを返すために使用するパラメータです。

また、OUTPUTパラメータを使用してデータを返す

プロシージャー定義でパラメーターにOUTPUTキーワードを指定すると、ストアード・プロシージャーは、ストアード・プロシージャーが終了したときに、パラメーターの現在の値を呼び出し側プログラムに返すことができます。呼び出し側プログラムで使用できる変数にパラメーターの値を保存するには、呼び出し側プログラムは、ストアード・プロシージャーを実行するときにOUTPUTキーワードを使用する必要があります。

于 2012-09-29T07:51:58.147 に答える