主キーの変更

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

SQL Server では、 SQL Server Management Studio または Transact-SQL を使用して主キーを変更できます。 列の順序、インデックス名、クラスター化オプション、または FILL FACTOR を変更することで、テーブルの主キーを変更できます。

このトピックの内容

はじめに

セキュリティ

アクセス許可

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

SQL Server Management Studio を使用する

主キーを変更するには

  1. 主キーを変更するテーブルのテーブル デザイナーを開き、テーブル デザイナー内を右クリックして、ショートカット メニューの [インデックス/キー] をクリックします。

  2. [インデックス/キー] ダイアログ ボックスで、 [選択された主/一意キーまたはインデックス] ボックスから主キー インデックスを選択します。

  3. 次の表の操作を完了します。

    終了 手順
    主キーの名前を変更する。 [オブジェクト名] ボックスに新しい名前を入力します。 新しい名前が [選択された主/一意キーまたはインデックス] ボックスの一覧の名前と重複していないことを確認します。
    クラスター化オプションを設定する。 主キーのクラスター化インデックスを作成するには、 [CLUSTERED として作成]を選択し、ドロップダウン リスト ボックスからオプションを選択します。 1 つのテーブルには、クラスター化インデックスを 1 つだけ作成できます。 インデックスにこのオプションを使用できない場合は、まず既存のクラスター化インデックスでこのチェック ボックスをオフにする必要があります。

    このオプションを選択しない場合、一意の非クラスター化インデックスが作成されます。
    FILL FACTOR を定義する。 [FILL の指定] カテゴリを展開して、 [FILL FACTOR] ボックスに 0 ~ 100 の整数を入力します。 Fill Factor の詳細とその使用方法については、「 インデックスの FILL FACTOR の指定」を参照してください。
    列の順序を変更する。 [列] をクリックして、プロパティの右にある省略記号 ( [...] ) をクリックします。 [インデックスの列] ダイアログ ボックスで、主キーから列を削除します。 次に、削除した列を必要な順序で再度追加します。 [列名] ボックスの一覧から列名を削除するだけで、キーから列を削除できます。
  4. [ファイル] メニューの [<テーブル名> を保存] をクリックします。

Transact-SQL の使用

主キーを変更するには

Transact-SQL を使用して PRIMARY KEY 制約を変更するには、最初に既存の PRIMARY KEY 制約を削除してから、新しい定義を使用して再作成する必要があります。 詳細については、「 Delete Primary Keys 」および「 Create Primary Keys」を参照してください。