SQL Server - プライマリーキー
ナビゲーションに移動
検索に移動
プライマリーキー(主キー)を作成するSQL
SQL Serverのプライマリーキー(主キー)をテーブル作成後に作成するには、
ALTER TABLE [テーブル名] ADD CONSTRAINT [プライマリーキー名] KEY CLUSTERED [カラム名]文を使用する。
以下では、T_Sampleテーブルのpk1プライマリーキーをempnoカラムに作成する。
-- プライマリーキーpk1を作成するクエリ
ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
以下では、T_Sample1テーブルのck1複合キーをempnoカラムおよびdepnoカラムに作成する。
複合キーにする場合は、列名をカンマで続けて記述する。
-- 複合キーck1を作成するクエリ
ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno,depno);
プライマリーキー(主キー)を変更するクエリ
SQL Server(Transact-SQL)には、プライマリーキー(主キー)を変更するクエリは存在しない。
変更するには、プライマリーキーを削除してから、新たにプライマリーキーを作成する。
- 変更の手順
- 既存のプライマリーキーの削除
- ALTER TABLE [テーブル名] DROP CONSTRAINT [プライマリーキー名];
- 新たにプライマリーキーを作成する
- ALTER TABLE [テーブル名] ADD CONSTRAINT [プライマリーキー名] KEY CLUSTERED [カラム名];
まず、empテーブルのpk1プライマリーキーを削除する。
-- プライマリーキーpk1の削除
ALTER TABLE emp DROP CONSTRAINT pk1;
参照 : 主キーの削除 | Microsoft Docs
次に、table1テーブルのpk1プライマリーキーをempnoカラムに作成する。
-- プライマリーキーの作成
ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
プライマリーキーの削除
プライマリーキーを削除するには、ALTER TABLE [テーブル名] DROP CONSTRAINT [プライマリーキー名]文を使用する。
以下では、empテーブルのpk1プライマリーキーを削除する。
-- pk1プライマリーキーの削除
ALTER TABLE emp DROP CONSTRAINT pk1;