web-dev-qa-db-ja.com

SQL Serverの変数にSP戻り値を設定します

テキストを含む単一の行と列を返すsprocがあります。このテキストを次のような変数に設定する必要があります。

declare @bla varchar(100)
select @bla = sp_Name 9999, 99989999, 'A', 'S', null

もちろん、このコードは機能しません...

ありがとう!

13
Bruno

ストアドプロシージャを変更できない場合、別の解決策は一時テーブルを定義し、その中に結果を挿入することです。

DECLARE @Output VARCHAR(100)

CREATE TABLE #tmpTable
(
    OutputValue VARCHAR(100)
)
INSERT INTO #tmpTable (OutputValue)
EXEC dbo.sp_name 9999, 99989999, 'A', 'S', null

SELECT
    @Output = OutputValue
FROM 
    #tmpTable

DROP TABLE #tmpTable
29
Tim C

ストアドプロシージャが単一の値を返す場合、ストアドプロシージャのパラメータの1つをOUTPUT変数として定義すると、ストアドプロシージャはパラメータの値を設定します

CREATE PROCEDURE dbo.sp_Name
    @In INT,
    @Out VARCHAR(100) OUTPUT

AS
BEGIN
    SELECT @Out = 'Test'
END
GO

そして、あなたは次のように出力値を取得します

DECLARE @OUT VARCHAR(100)
EXEC sp_name 1, @Out OUTPUT
PRINT @Out
19
Tim C
DECLARE
  @out INT

EXEC @out = sp_name 'param', 2, ...

T-SQL "EXECUTE"の詳細 help (ヘルプはMSSQL 2008からですが、これは2000年にも機能します)

15
DiGi