主キーの削除

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed Instance

SQL Server では、SQL Server Management Studio または Transact-SQL を使って主キーを削除できます。

主キーを削除すると、対応するインデックスが削除されます。 これはテーブルのクラスター化インデックスで、テーブルがヒープになる可能性があります。 詳細については、「ヒープ (クラスター化インデックスなしのテーブル)」を参照してください。 ほとんどのテーブルには、クラスター化インデックスが必要です。 主キーを作成し直すには、「主キーの作成」を参照してください。

別のテーブルの外部キーによって主キーを参照できます。 主キーが外部キーによって参照されている場合、まず参照元の外部キーを削除してから、主キーを削除する必要があります。 詳しくは、「 Primary and Foreign Key Constraints」をご覧ください。

アクセス許可

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

SQL Server Management Studio を使用します

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

  1. オブジェクト エクスプローラーで、主キーを含むテーブルを展開し、 [キー]を展開します。

  2. キーを右クリックし、 [削除]をクリックします。

  3. [オブジェクトの削除] ダイアログ ボックスで正しいキーが指定されていることを確認し、[OK] を選択します。

テーブル デザイナーを使用して主キーを削除するには

  1. オブジェクト エクスプローラーで、主キーが設定されたテーブルを右クリックし、[デザイン] を選択します。

  2. テーブル グリッドで、主キーを持つ行を右クリックし、 [主キーの削除] をクリックして、設定をオンからオフに切り替えます。

    Note

    この操作を元に戻すには、変更を保存せずにテーブルを閉じます。 主キーの削除を元に戻すと、テーブルに対するその他の変更はすべて失われます。

  3. [ファイル] メニューの [<テーブル名> を保存] を選びます。

Transact-SQL の使用

主キー制約を削除するには

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 次の例では、まず主キー制約の名前を指定してから制約を削除します。

    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  
    

次のステップ