MS-SQL / SQL Server
既存のテーブルにPrimary Key(PK)を設定する方法
既にdbo.TempDataというテーブルが作成されているとしましょう。
CREATE TABLE dbo.TempData
(
Sn int not null
, GroupID int not null
, Data1 varchar(100) not null
)
ここにPrimary Key(PK)を設定するにはどうすればいいのか?
今回はSQLでPrimary Key(PK)を設定する方法について説明します。
「Sn」列にPrimary Key(PK)を設定したい場合、
一番いい方法は最初からテーブルを作成する時に設定した方がいいです。
テーブル作成し主キー(プライマリキー)・Primary Key(PK)を作成する方法は下記の通りです。
CREATE TABLE dbo.TempData
(
Sn int not null
, GroupID int not null
, Data1 varchar(100) not null
, CONSTRAINT [PK_TempData] PRIMARY KEY CLUSTERED
(
[Sn] ASC
)
)
でも、既存テーブルにPrimary Key(PK)を作成する時があります。
その時SQLを利用して作成する方法は下記の通りです。
ALTER TABLE dbo.TempData
ADD CONSTRAINT [PK_TempData] PRIMARY KEY CLUSTERED
(
[Sn] ASC
)
ここで、Primary Key(PK)を一つ以上の2つを設定する場合、
その列が「Sn」、「GroupID」場合は下記の通りに作成します。
ALTER TABLE dbo.TempData
ADD CONSTRAINT [PK_TempData] PRIMARY KEY CLUSTERED
(
[Sn] ASC
,[GroupID] ASC
)
ここで、重要なのはPrimary Key(PK)を設定しようとする列に重複するデータが存在しては行けないところです。
注意してください。