主キーの削除
適用対象: SQL Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL マネージド インスタンス
Microsoft Fabric の SQL データベース
SQL Server では、SQL Server Management Studio または Transact-SQL を使って主キーを削除できます。
主キーを削除すると、対応するインデックスが削除されます。 このインデックスは、テーブルのクラスター化インデックスである可能性があります。これにより、テーブルがヒープになる可能性があります。 詳細については、「ヒープ (クラスター化インデックスのないテーブル)」を参照してください。 ほとんどのテーブルには、クラスター化インデックスが必要です。 主キーを再作成するには、「主キーの作成」を参照してください。
別のテーブルの外部キーによって主キーを参照できます。 外部キーによって参照される場合は、最初に参照元の外部キーを削除してから、主キーを削除する必要があります。 詳細については、「主キー制約と外部キー制約を参照してください。
アクセス許可
テーブルに対する ALTER
アクセス許可が必要です。
SQL Server Management Studio を使用します。
オブジェクト エクスプローラーを使用して主キー制約を削除する
オブジェクト エクスプローラーで、主キーを含むテーブルを展開し、 [キー]を展開します。
キーを右クリックし、 [削除]をクリックします。
[オブジェクトの削除] ダイアログ ボックスで正しいキーが指定されていることを確認し、[OK] を選択します。
テーブル デザイナーを使用して主キー制約を削除する
オブジェクト エクスプローラーで、主キーが設定されたテーブルを右クリックし、[デザイン] を選択します。
テーブル グリッドで、主キーを持つ行を右クリックし、 [主キーの削除] をクリックして、設定をオンからオフに切り替えます。
Note
この操作を元に戻すには、変更を保存せずにテーブルを閉じます。 テーブルに加えられた他のすべての変更を失わないと、主キーの削除を元に戻すことはできません。
[ファイル] メニューの [<テーブル名> を保存] を選択します。
Transact-SQL の使用
主キー制約を削除する
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。
最初に主キー制約の名前を識別する必要があります。
USE AdventureWorks2022; GO -- Return the name of primary key. SELECT name FROM sys.key_constraints WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'TransactionHistoryArchive'; GO
DROP
スクリプトを作成するには、前のクエリの結果を使用します。<primary-key-constraint>
を正しい値に置き換えます。 それはPK_TransactionHistoryArchive_TransactionID
に似ているかもしれません.ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT <primary-key-constraint>; GO