対象者: SQL Server 2016 (13.x) および以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database in Microsoft Fabric
この記事では、 SQL Server Management Studio (SSMS) または Transact-SQL を使用して SQL Server のテーブル列を削除する方法について説明します。
Caution
テーブルから列を削除すると、列および列に含まれているすべてのデータが削除されます。
Limitations
CHECK 制約がある列を削除することはできません。 最初に制約を削除する必要があります。
SSMS のPRIMARY KEY を使用する場合を除き、FOREIGN KEY、、またはその他の依存関係がある列を削除することはできません。 SSMS でオブジェクト エクスプローラーまたは Transact-SQL を使用する場合、最初に列のすべての依存関係を削除する必要があります。
Permissions
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio を使用して列を削除する
SSMS では、オブジェクト エクスプローラーまたはテーブル デザイナーを使用して列を削除できます。
オブジェクト エクスプローラーを使用して列を削除する
次の手順では、SSMS のオブジェクト エクスプローラーで列を削除する方法を説明します。
データベース エンジンのインスタンスへ接続します。
オブジェクト エクスプローラーで、列を削除するテーブルを探し、テーブルを展開して列名を表示します。
削除する列を右クリックして、[削除] を選びます。
[オブジェクトの削除] ダイアログ ボックスで [OK]を選択します。
列に制約またはその他の依存関係が含まれている場合は、 [オブジェクトの削除] ダイアログ ボックスにエラー メッセージが表示されます。 参照制約を削除することによって、エラーを解決します。
テーブル デザイナーを使用して列を削除する
次の手順では、SSMS のテーブル デザイナーで列を削除する方法を説明します。
オブジェクト エクスプローラーで、列を削除するテーブルを右クリックし、 [デザイン]をクリックします。
削除する列を右クリックし、ショートカット メニューの [列の削除] をクリックします。
列にリレーションシップ (
FOREIGN KEYまたはPRIMARY KEY) が適用されている場合は、選択した列および列のリレーションシップの削除を確認するメッセージが表示されます。 [はい] 選択します。
Transact-SQL を使用して列を削除する
SSMS の Transact-SQL、Azure Data Studio、または sqlcmd ユーティリティなどのコマンド ライン ツールを使用して、列を削除できます。
次の例では、column_b テーブルから dbo.doc_exb 列を削除する方法を示します。 テーブルと列は既に存在している必要があります。
ALTER TABLE dbo.doc_exb DROP COLUMN column_b;
GO
列に制約またはその他の依存関係が含まれている場合は、エラー メッセージが返されます。 参照制約を削除することによって、エラーを解決します。
他の例については、「ALTER TABLE」を参照してください。