SQL Server テーブルに列が存在するかどうかを確認する方法 質問する

SQL Server テーブルに列が存在するかどうかを確認する方法 質問する

特定の列が存在しない場合は追加する必要があります。次のようなものがありますが、常に false が返されます。

IF EXISTS(SELECT *
          FROM   INFORMATION_SCHEMA.COLUMNS
          WHERE  TABLE_NAME = 'myTableName'
                 AND COLUMN_NAME = 'myColumnName') 

SQL Server データベースのテーブルに列が存在するかどうかを確認するにはどうすればよいですか?

ベストアンサー1

SQL Server 2005 以降:

IF EXISTS(SELECT 1 FROM sys.columns 
          WHERE Name = N'columnName'
          AND Object_ID = Object_ID(N'schemaName.tableName'))
BEGIN
    -- Column Exists
END

マーティン・スミスのバージョンはもっと短いです:

IF COL_LENGTH('schemaName.tableName', 'columnName') IS NOT NULL
BEGIN
    -- Column Exists
END

おすすめ記事