Microsoft SQL Server
Первичные ключи
Поиск…
замечания
Первичные ключи используются для уникальной идентификации записи в таблице. В таблице может быть только один первичный ключ (хотя первичный ключ может состоять из нескольких столбцов), а для определенных типов репликации требуется первичный ключ.
Первичные ключи часто используются как (но не обязательно) кластеризованный индекс в таблице.
Создать стол w / идентификационный столбец в качестве первичного ключа
-- 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