プロシージャ内で動的にSQLを作成して実行する方法
文書番号:20526
プロシージャ内で動的にSQLを作成して実行する方法です。
【実行手順】
-
指定された名称でテーブルを作成する。などといった処理は動的にSQL文 を作成して実行したいと思います。
--SQLを作成する変数宣言 DECLARE @SQL nvarchar(2000) --実行するSQLを作成する SET @SQL = N''; SET @SQL = @SQL + N' CREATE TABLE ' + @TAB_NAME ; SET @SQL = @SQL + N' code char(4)'; SET @SQL = @SQL + N' ,name varchar(50)'; SET @SQL = @SQL + N' ) '; --SQL を実行する EXEC (@SQL);
-
リンクサーバーで SQL を実行する場合は以下のようにします。
--SQLを作成する変数宣言 DECLARE @SQL nvarchar(2000) --実行するSQLを作成する SET @SQL = N''; SET @SQL = @SQL + N' CREATE TABLE ' + @TAB_NAME ; SET @SQL = @SQL + N' code char(4)'; SET @SQL = @SQL + N' ,name varchar(50)'; SET @SQL = @SQL + N' ) '; --SQL を実行する EXEC (@SQL) AT [リンクサーバー名];