次の方法で共有


テーブルから列を削除する

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

この記事では、SQL Server Management Studio (SSMS) または Transact-SQL を使用して SQL Server のテーブルの列を削除する方法について説明します。

注意事項

テーブルから列を削除すると、列および列に含まれているすべてのデータが削除されます。

制限事項

CHECK 制約がある列を削除することはできません。 最初に制約を削除する必要があります。

SSMS のテーブル デザイナー を使用する場合を除き、PRIMARY KEYFOREIGN KEY、またはその他の依存関係がある列を削除することはできません。 SSMS でオブジェクト エクスプローラーまたは Transact-SQL を使用する場合、最初に列のすべての依存関係を削除する必要があります。

アクセス許可

テーブルに対する ALTER 権限が必要です。

SQL Server Management Studio を使用して列を削除する

SSMS では、オブジェクト エクスプローラーまたはテーブル デザイナーを使用して列を削除できます。

オブジェクト エクスプローラーを使用して列を削除する

次の手順では、SSMS のオブジェクト エクスプローラーで列を削除する方法を説明します。

  1. データベース エンジンのインスタンスへ接続します。

  2. オブジェクト エクスプローラーで、列を削除するテーブルを探し、テーブルを展開して列名を表示します。

  3. 削除する列を右クリックして、[削除] を選びます。

  4. [オブジェクトの削除] ダイアログ ボックスで [OK]を選択します。

列に制約またはその他の依存関係が含まれている場合は、 [オブジェクトの削除] ダイアログ ボックスにエラー メッセージが表示されます。 参照制約を削除することによって、エラーを解決します。

テーブル デザイナーを使用して列を削除する

次の手順では、SSMS のテーブル デザイナーで列を削除する方法を説明します。

  1. オブジェクト エクスプローラーで、列を削除するテーブルを右クリックし、 [デザイン]をクリックします。

  2. 削除する列を右クリックし、ショートカット メニューの [列の削除] をクリックします。

  3. 列にリレーションシップ (FOREIGN KEY または PRIMARY KEY) が適用されている場合は、選択した列および列のリレーションシップの削除を確認するメッセージが表示されます。 [はい] をクリックします。

Transact-SQL を使用して列を削除する

SSMS の Transact-SQL、Azure Data Studio、または sqlcmd ユーティリティなどのコマンド ライン ツールを使用して、列を削除できます。

次の例では、dbo.doc_exb テーブルから column_b 列を削除する方法を示します。 テーブルと列は既に存在している必要があります。

ALTER TABLE dbo.doc_exb DROP COLUMN column_b;
GO

列に制約またはその他の依存関係が含まれている場合は、エラー メッセージが返されます。 参照制約を削除することによって、エラーを解決します。

他の例については、「ALTER TABLE」を参照してください。