EXECで実行したスクリプトの結果を変数に得たい
クエリ自体は動的に作成したいんで文字列として生成してEXECで実行したいんだけど、そのクエリの結果は変数に取得したいんです。
こういう場合、EXECではだめなのだそうです。
目的:
テーブル名を動的に変えて値を取ってきたいです。
指定されたテーブルのDATANAMEというカラムに「Result」と入ったレコードの「Value」というカラムの値がほしいです。
-- 取得した値を格納する変数 DECLARE @GetResult nvarchar(50) = '' -- 言わずもがなテーブル名 DECLARE @TableName nvarchar(50) = 'SampleTable' -- 抽出用クエリ DECLARE @Query nvarchar(500) = 'SELECT @value = Value FROM ' + @TableName + 'WHERE DATANAME = ''Result''' -- 引数のための変数 DECLARE @Param nvarchar(50) = '@value nvarchar(50) OUTPUT' -- 実行 EXECUTE sp_executesql @Query, @Param, @value = @GetResult OUTPUT -- 確認 SELECT @GetResult
こんな感じにすればEXECで実行しようとしてたクエリで取得する値が変数に入ります。
参考URL:
http://www.ilovex.co.jp/blog/system/softwaredevelopment/transact-sqlsql.html