SQL Serverで動的に生成したSQLを実行する

EXECUTE や sp_executesql で文字列の SQL 文を実行できるので、これらを使えば動的に生成したクエリを実行できます。

-- EXECUTEステートメントでの実行例。
EXECUTE (N'SELECT * FROM sys.objects')

-- 変数を使った実行例。
DECLARE @sql NVARCHAR(200)
SET @sql = N'SELECT * FROM sys.objects'
EXECUTE (@sql)

-- sp_executesql の使用例。
EXECUTE sp_executesql
  N'SELECT * FROM sys.objects WHERE type = @type', 
  N'@type CHAR(2)', @type = 'U'