1. ホーム
  2. sql-server

[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?

2022-03-19 04:41:40

質問

特定のカラムが存在しない場合に、そのカラムを追加する必要があります。以下のようなものがありますが、常にfalseを返します。

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

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

どのように解決するのですか?

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