次の方法で共有


主キーの削除

適用対象: SQL Server 2016 (13.x) 以降のバージョン Azure SQL DatabaseAzure SQL マネージド インスタンスMicrosoft Fabric の SQL データベース

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

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

別のテーブルの外部キーによって主キーを参照できます。 外部キーによって参照される場合は、最初に参照元の外部キーを削除してから、主キーを削除する必要があります。 詳細については、「主キー制約と外部キー制約を参照してください。

アクセス許可

テーブルに対する 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
      
    • DROP スクリプトを作成するには、前のクエリの結果を使用します。 <primary-key-constraint> を正しい値に置き換えます。 それは PK_TransactionHistoryArchive_TransactionIDに似ているかもしれません.

      ALTER TABLE Production.TransactionHistoryArchive
          DROP CONSTRAINT <primary-key-constraint>;
      GO