現在オフラインです。再接続するためにインターネットの接続を待っています

[INF] sp_executesql で出力パラメータを使用する

この記事は、以前は次の ID で公開されていました: JP262499
概要
sp_executesql システム ストアド プロシージャを使用して、複数回再利用できる T-SQL ステートメント、または動的に構築された T-SQL ステートメントを実行します。このプロシージャは T-SQL ステートメントまたはバッチを処理するために、パラメータを入力として受け取ります。また、T-SQL ステートメントから生成された出力を格納できるように、このプロシージャに出力パラメータを指定することもできます (ただし、このことは SQL Server Books Online では説明されていません)。

sp_executesql で出力パラメータが役に立つ事例を以下に 2 つ示します。
  • sp_executesql が有益な出力を生成する場合、この出力を出力パラメータに格納すると、バッチ呼び出しがその後のクエリに対してこのパラメータを使用できます。
  • sp_executesql が出力パラメータを使用して定義したストアド プロシージャを実行している場合、sp_executesql の出力パラメータを使用してストアド プロシージャが生成した出力を保持できます。
詳細
sp_executesql で出力パラメータを使用する例を以下に 2 つ示します。

例 1
DECLARE @SQLString NVARCHAR(500)DECLARE @ParmDefinition NVARCHAR(500)DECLARE @IntVariable INTDECLARE @Lastlname varchar(30)SET @SQLString = N'SELECT @LastlnameOUT = max(lname)                   FROM pubs.dbo.employee WHERE job_lvl = @level'SET @ParmDefinition = N'@level tinyint,                        @LastlnameOUT varchar(30) OUTPUT'SET @IntVariable = 35EXECUTE sp_executesql@SQLString,@ParmDefinition,@level = @IntVariable,@LastlnameOUT=@Lastlname OUTPUTSELECT @Lastlname
例 2
CREATE PROCEDURE Myproc    @parm varchar(10),    @parm1OUT varchar(30) OUTPUT,    @parm2OUT varchar(30) OUTPUT    AS      SELECT @parm1OUT='parm 1' + @parm     SELECT @parm2OUT='parm 2' + @parmGODECLARE @SQLString NVARCHAR(500)DECLARE @ParmDefinition NVARCHAR(500)DECLARE @parmIN VARCHAR(10)DECLARE @parmRET1 VARCHAR(30)DECLARE @parmRET2 VARCHAR(30)SET @parmIN=' returned'SET @SQLString=N'EXEC Myproc @parm,                             @parm1OUT OUTPUT, @parm2OUT OUTPUT'SET @ParmDefinition=N'@parm varchar(10),                      @parm1OUT varchar(30) OUTPUT,                      @parm2OUT varchar(30) OUTPUT'EXECUTE sp_executesql    @SQLString,    @ParmDefinition,    @parm=@parmIN,    @parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUTSELECT @parmRET1 AS "paramter 1", @parmRET2 AS "paramter 2"godrop procedure Myproc
詳細については、SQL Server Books Online の "sp_executesql の使用" および SQL Server 7.0 Books Online の "sp_executesql (T-SQL)" または SQL Server 2000 Books Online の "sp_executesql" を参照してください。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 262499 (最終更新日 2001-06-13) をもとに作成したものです。

プロパティ

文書番号:262499 - 最終更新日: 02/15/2011 20:01:00 - リビジョン: 3.2

  • kbsqlmanagementtools kbinfo KB262499
フィードバック
html>