[SQL Server] 既存のテーブルにPrimary Key(PK)を設定する方法

inno
2014-08-20 16:41 2409 0
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)を設定しようとする列に重複するデータが存在しては行けないところです。
注意してください。

コメント