主キーの削除
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Database Azure SQL Managed Instance
SQL Server では、SQL Server Management Studio または Transact-SQL を使って主キーを削除できます。
主キーを削除すると、対応するインデックスが削除されます。 これはテーブルのクラスター化インデックスで、テーブルがヒープになる可能性があります。 詳細については、「ヒープ (クラスター化インデックスなしのテーブル)」を参照してください。 ほとんどのテーブルには、クラスター化インデックスが必要です。 主キーを作成し直すには、「主キーの作成」を参照してください。
別のテーブルの外部キーによって主キーを参照できます。 主キーが外部キーによって参照されている場合、まず参照元の外部キーを削除してから、主キーを削除する必要があります。 詳しくは、「 Primary and Foreign Key Constraints」をご覧ください。
アクセス許可
テーブルに対する 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 -- Delete the primary key constraint. ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT PK_TransactionHistoryArchive_TransactionID; GO