「SQL Server - プライマリーキー」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「プライマリーキーの作成・変更・削除(SQL Server)」を「SQL Server - プライマリーキー」に、リダイレクトを残さずに移動しました)
(文字列「</source>」を「</syntaxhighlight>」に置換)
7行目: 7行目:
  -- プライマリーキーpk1を作成するクエリ
  -- プライマリーキーpk1を作成するクエリ
  ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
  ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
  </source>
  </syntaxhighlight>
<br>
<br>
以下では、T_Sample1テーブルのck1複合キーをempnoカラムおよびdepnoカラムに作成する。<br>
以下では、T_Sample1テーブルのck1複合キーをempnoカラムおよびdepnoカラムに作成する。<br>
14行目: 14行目:
  -- 複合キーck1を作成するクエリ
  -- 複合キーck1を作成するクエリ
  ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno,depno);
  ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno,depno);
  </source>
  </syntaxhighlight>
[https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/create-primary-keys 参照 : 主キーの作成 | Microsoft Docs]<br>
[https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/create-primary-keys 参照 : 主キーの作成 | Microsoft Docs]<br>
<br><br>
<br><br>
32行目: 32行目:
  -- プライマリーキーpk1の削除
  -- プライマリーキーpk1の削除
  ALTER TABLE emp DROP CONSTRAINT pk1;
  ALTER TABLE emp DROP CONSTRAINT pk1;
  </source>
  </syntaxhighlight>
[https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/delete-primary-keys 参照 : 主キーの削除 | Microsoft Docs]<br>
[https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/delete-primary-keys 参照 : 主キーの削除 | Microsoft Docs]<br>
<br>
<br>
39行目: 39行目:
  -- プライマリーキーの作成
  -- プライマリーキーの作成
  ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
  ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


49行目: 49行目:
  -- pk1プライマリーキーの削除
  -- pk1プライマリーキーの削除
  ALTER TABLE emp DROP CONSTRAINT pk1;
  ALTER TABLE emp DROP CONSTRAINT pk1;
  </source>
  </syntaxhighlight>
[https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/delete-primary-keys 参照 : 主キーの削除 | Microsoft Docs]<br>
[https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/delete-primary-keys 参照 : 主キーの削除 | Microsoft Docs]<br>
<br><br>
<br><br>

2021年11月23日 (火) 09:14時点における版

プライマリーキー(主キー)を作成するSQL

SQL Serverのプライマリーキー(主キー)をテーブル作成後に作成するには、
ALTER TABLE [テーブル名] ADD CONSTRAINT [プライマリーキー名] KEY CLUSTERED [カラム名]文を使用する。

以下では、T_Sampleテーブルのpk1プライマリーキーをempnoカラムに作成する。

<source lang="sql">
-- プライマリーキーpk1を作成するクエリ
ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
</syntaxhighlight>


以下では、T_Sample1テーブルのck1複合キーをempnoカラムおよびdepnoカラムに作成する。
複合キーにする場合は、列名をカンマで続けて記述する。

<source lang="sql">
-- 複合キーck1を作成するクエリ
ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno,depno);
</syntaxhighlight>

参照 : 主キーの作成 | Microsoft Docs


プライマリーキー(主キー)を変更するクエリ

SQL Server(Transact-SQL)には、プライマリーキー(主キー)を変更するクエリは存在しない。
変更するには、プライマリーキーを削除してから、新たにプライマリーキーを作成する。

  • 変更の手順
  1. 既存のプライマリーキーの削除
    ALTER TABLE [テーブル名] DROP CONSTRAINT [プライマリーキー名];
  2. 新たにプライマリーキーを作成する
    ALTER TABLE [テーブル名] ADD CONSTRAINT [プライマリーキー名] KEY CLUSTERED [カラム名];


まず、empテーブルのpk1プライマリーキーを削除する。

<source lang="sql">
-- プライマリーキーpk1の削除
ALTER TABLE emp DROP CONSTRAINT pk1;
</syntaxhighlight>

参照 : 主キーの削除 | Microsoft Docs

次に、table1テーブルのpk1プライマリーキーをempnoカラムに作成する。

<source lang="sql">
-- プライマリーキーの作成
ALTER TABLE table1 ADD CONSTRAINT pk1 KEY CLUSTERED (empno);
</syntaxhighlight>



プライマリーキーの削除

プライマリーキーを削除するには、ALTER TABLE [テーブル名] DROP CONSTRAINT [プライマリーキー名]文を使用する。

以下では、empテーブルのpk1プライマリーキーを削除する。

<source lang="sql">
-- pk1プライマリーキーの削除
ALTER TABLE emp DROP CONSTRAINT pk1;
</syntaxhighlight>

参照 : 主キーの削除 | Microsoft Docs