式の結果を SQL Server ストアド プロシージャのパラメータとして渡す
開発者は、データベース開発を改善することを目的として、ストアド プロシージャを実行しようとしたときにエラーが発生しました。このエラーは、式の結果 (具体的には、文字列「指定された ID が見つかりませんでした:」と整数変数 @pID の値の連結) を引数リストに直接渡そうとしたときに発生します。
ただし、SQL Server はパラメーター リスト自体でそのような操作をサポートしていません。代わりに、式の結果を引数に渡す前に、中間変数を使用して式の結果を保持する必要があります。
EXEC の構文では、パラメーター部分の「値」の形式が明示的に指定されておらず、単純な式のみが受け入れられることが示されています。これらの式はリテラル値と @@ の接頭辞が付いた一部のシステム関数に限定されます。他のシステム関数は、かっこを必要としない関数であっても使用できません。
したがって、このエラーを解決するには、開発者は次の構文を使用する必要があります:
<code class="language-sql">DECLARE @pID INT; SET @pID = 1; /*如果使用2008及以上版本,之前的版本需要分成两个单独的语句*/ DECLARE @string VARCHAR(50) = 'Could not find given id: ' + CAST(@pID AS VARCHAR(11)); EXEC WriteLog 'Component', 'Source', @string;</code>
以上が式の結果を SQL Server ストアド プロシージャのパラメータとして渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。