【SQLServer】テーブル作成時、テーブルの列にプライマリーキー制約を付与する方法

今回はテーブル作成時にテーブルの列にプライマリーキー制約を付与する方法を載せます。

1.1つの列にプライマリーキー制約を付与する場合
2.複数の列にプライマリーキーを付与する場合

1.1つの列にプライマリーキー制約を付与する場合

1つの列に対してプライマリーキー制約を付与する場合はテーブル作成時にその列で以下の内容を書きます。

・構文

CREATE TABLE TABLE
(
<列名><データ型> PRIMARY KEY ←プライマリーキーにしたい列
,<列名>
・
・
・

)

・使用例

--1つの列にプライマリーキーを付与するSQL
CREATE TABLE TABLE_1
(
ID NVARCHAR(4) PRIMARY KEY,
NAME NVARCHAR(50),
UPDT_YMDT DATE
);

使用例は「TABLE_1」という名前のテーブルを作成するときにの例です。
テーブル構成はID、名前、更新日列の3列で構成しています。

今回はID列にプライマリーキー制約を付与するので、ID列にPRIMARY KEYを書いています。
このようにプライマリーキー制約を1つの列に付与したいという場合にはその列の横にPRIMARY KEYと書きます。
ただし、この書き方では1つの列に対してでしかプライマリーキー制約を付与することができないため、複数列に制約を付与したいという場合には
向かない書き方です。
(2つの列に同じような書き方をした場合は構文エラーとなり、テーブルは作成できません。)

f:id:rumr-Labo:20190522210133p:plain

2.列(複数)にプライマリーキーを付与する場合

前項のように複数の列に対してプライマリー制約をしたいという場合には以下のようにSQLを書きます。

・構文

CREATE TABLE TABLE
(
<列名1><データ型> ←プライマリーキーにしたい列
,<列名2><データ型>←プライマリーキーにしたい列
・
・
・
,PRIMARY KEY(<列名1>,<列名2>)
)

・使用例
使用例は「TABLE_3」という名前のテーブルを作成するときにの例です。
テーブル構成はID、ID2、名前、更新日列の4列で構成しています。
ID_1とID_2列に今回はプライマリー制約をつけたいため、以下のように書きます。

--複数の列にプライマリーキーを付与するSQL
CREATE TABLE TABLE_3
(
ID_1 NVARCHAR(4),
ID_2 NVARCHAR(4),
NAME NVARCHAR(50),
UPDT_YMDT DATE,
PRIMARY KEY(ID_1,ID_2)
);

複数の列を指定する場合は列の最後にPRIMARY KEY()と書き、括弧の中にプライマリー制約を付けたい列名を書きます。

実行環境

OS:Windows10
SQL Server Management Studio v17.4