Поиск…


замечания

Первичные ключи используются для уникальной идентификации записи в таблице. В таблице может быть только один первичный ключ (хотя первичный ключ может состоять из нескольких столбцов), а для определенных типов репликации требуется первичный ключ.

Первичные ключи часто используются как (но не обязательно) кластеризованный индекс в таблице.

Создать стол 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