主キーの変更
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Database Azure SQL Managed Instance
SQL Server では、 SQL Server Management Studio または Transact-SQL を使用して主キーを変更できます。 列の順序、インデックス名、クラスター化オプション、または FILL FACTOR を変更することで、テーブルの主キーを変更できます。
このトピックの内容
作業を開始する準備:
主キーを変更するための方法:
始める前に
セキュリティ
アクセス許可
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio を使用する
主キーを変更するには
主キーを変更するテーブルのテーブル デザイナーを開き、テーブル デザイナー内を右クリックして、ショートカット メニューの [インデックス/キー] をクリックします。
[インデックス/キー] ダイアログ ボックスで、 [選択された主/一意キーまたはインデックス] ボックスから主キー インデックスを選択します。
次の表の操作を完了します。
目的 こちらの手順に従ってください 主キーの名前を変更する。 [オブジェクト名] ボックスに新しい名前を入力します。 新しい名前が [選択された主/一意キーまたはインデックス] ボックスの一覧の名前と重複していないことを確認します。 クラスター化オプションを設定する。 主キーのクラスター化インデックスを作成するには、 [CLUSTERED として作成]を選択し、ドロップダウン リスト ボックスからオプションを選択します。 1 つのテーブルには、クラスター化インデックスを 1 つだけ作成できます。 インデックスにこのオプションを使用できない場合は、まず既存のクラスター化インデックスでこのチェック ボックスをオフにする必要があります。
このオプションを選択しない場合、一意の非クラスター化インデックスが作成されます。FILL FACTOR を定義する。 [FILL の指定] カテゴリを展開して、 [FILL FACTOR] ボックスに 0 ~ 100 の整数を入力します。 Fill Factor の詳細とその使用方法については、「 インデックスの FILL FACTOR の指定」を参照してください。 列の順序を変更する。 [列] をクリックして、プロパティの右にある省略記号 ( [...] ) をクリックします。 [インデックスの列] ダイアログ ボックスで、主キーから列を削除します。 次に、削除した列を必要な順序で再度追加します。 [列名] ボックスの一覧から列名を削除するだけで、キーから列を削除できます。 [ファイル] メニューの [<テーブル名> を保存] をクリックします。
Transact-SQL の使用
主キーを変更するには
Transact-SQL を使用して PRIMARY KEY 制約を変更するには、最初に既存の PRIMARY KEY 制約を削除してから、新しい定義を使用して再作成する必要があります。 詳細については、「 Delete Primary Keys 」および「 Create Primary Keys」を参照してください。