2016-05-01 15 views
2

文字列Execで出力パラメータを使用するにはどうすればよいですか? "標準" 構文を使用してクエリを、次の点を考慮 :ように見えるどのように文字列のexecで再作成正確同じ結果に、どちらSQL Server string exec出力パラメータを持つプロシージャ

EXEC ('testProcedure @param1 = @testString OUTPUT') 

EXEC ('testProcedure @param1 = ' + @testString + ' OUTPUT') 

DECLARE @testString nvarchar(50); 
EXEC testProcedure @param1 = @testString OUTPUT 
SELECT 'result ' = @testString 
go 

仕事:結果はNULLまたはMust declare the scalar variable "@testString"のいずれかのエラーです。

答えて

4

パラメータとして値を渡す必要があります。動的SQLは新しいコンテキストで実行されるため、そこでは変数が表示されません。

あなたはsp_executesqlを使用する必要があります。

DECLARE @testString nvarchar(50); 

EXEC dbo.sp_executesql N'EXEC testProcedure @testString OUTPUT', 
         N'@testString nvarchar(50) OUTPUT', 
         @testString OUTPUT; 

SELECT 'result ' = @testString; 

LiveDemo

関連する問題