Microsoft SQL Server
主キー
サーチ…
備考
主キーは、テーブル内のレコードを一意に識別するために使用されます。表には1つの主キーのみがあります(主キーは複数の列で構成できます)。また、特定のタイプのレプリケーションには主キーが必要です。
主キーは、表のクラスタード・インデックスとして使用されることがよくあります(必ずしもそうである必要はありません)。
主キーとして表を作成する
-- Identity primary key - unique arbitrary increment number
create table person (
id int identity(1,1) primary key not null,
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) not null
)
GUID主キー付きのテーブルを作成する
-- GUID primary key - arbitrary unique value for table
create table person (
id uniqueIdentifier default (newId()) primary key,
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) not null
)
ナチュラルキー付きのテーブルを作成する
-- natural primary key - using an existing piece of data within the table that uniquely identifies the record
create table person (
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) primary key not null
)
コンポジットキー付きのテーブルを作成する
-- composite key - using two or more existing columns within a table to create a primary key
create table person (
firstName varchar(100) not null,
lastName varchar(100) not null,
dob DateTime not null,
ssn varchar(9) not null,
primary key (firstName, lastName, dob)
)
既存のテーブルに主キーを追加する
ALTER TABLE person
ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)
プライマリキー列(この場合はssn
)に同じ候補キーを持つ複数の行がある場合、プライマリキー値は一意でなければならないため、上記の文は失敗します。
主キーの削除
ALTER TABLE Person
DROP CONSTRAINT pk_PersonSSN
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow