SQL Server クエリーを文字列で動的に作成 (2方法)

1. EXECUTE ステートメントで文字列を実行する方法

DECLARE
   @SQLString NVARCHAR(MAX)
, @IDList nvarchar(MAX)

SET @IDList = ‘1,2,3’

SET @SQLString = N’SELECT a1 ‘
                    + ‘FROM Table1 ‘
                    + ‘WHERE ID IN ‘
                    + ‘(‘ + @IDList + ‘) ‘

Exec (@SQLString)


2. sp_executesql を使用する方法

DECLARE
   @SQLString nvarchar(MAX) –SQL文字列
, @ParaString nvarchar(MAX) –パラメーター定義文字列
, @a1 int –出力パラメーター
, @ID int

SET @SQLString =
    N’SELECT @OutValue = a1
    FROM Table1
    WHERE ID = @ID1′

SET @ParaString =
    N’@ID1 int
    , @OutValue int OUTPUT’

SET @ID = 1

EXECUTE sp_executesql @SQLString, @ParaString
                    , @ID1 = @ID
                    , @OutValue = @a1 OUTPUT

SELECT @a1


参考:
sp_executesql の使用 (MSDN)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です