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

指定した列が存在するか確認して処理分岐する方法

 
文書番号:20634




指定した列が存在するかどうかを確認し、その結果によって処理を分岐する方法です。

動的に列を作成する場合などでは、その時点で列が存在するかを確認し、存在しない場合は作成する。といった処理ができます。

・指定したテーブルが存在するか確認する


IF EXISTS(SELECT * 
          FROM   sys.columns 
          WHERE  Name = N'<列名>'  
          AND    Object_ID = OBJECT_ID(N'<テーブル名>')
	)
    --存在したときの処理
ELSE
    --存在しないときの処理

-- 実行例

IF EXISTS(SELECT * 
          FROM   sys.columns 
          WHERE  Name = N'Col001'  
          AND    Object_ID = OBJECT_ID(N'Table_1')
	)
    SELECT '存在した'
ELSE
    SELECT '存在しない'

「sys.columns」表を参照し、指定したテーブルに指定した列が存在するかを確認しています。