HOME >> Tips >> SQL Server Tips >> SQL

プロシージャ内で動的に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 [リンクサーバー名];