Первичный ключ в таблице - это столбец или группа столбцов, чьи значения отличаются для каждой строки. Каждый первичный ключ определяется с использованием предложения primary key в операторе create table или alter table.
Предложение primary key имеет следующую форму:
[constraint c_name] primary key [clustered | nonclustered] ({col_namel} ,...)
Все опции в предложении primary key имеют то же самое значение, что и соответствующие опции с теми же именами в предложении unique. В отличие от столбцов unique столбцы Primary Key должны быть Not Null и их режим по умолчанию clustered.
В примере 5.7 показано задание первичного ключа для таблицы employee базы данных sample.
Таблица employee пересоздается, и ее первичный ключ определяется в примере 5.7. Первичный ключ этой таблицы задается с использованием декларативного ограничения целостности, которому присваивается имя primempi. Это ограничение целостности является ограничением на уровне таблицы, потому что задается после определения всех столбцов таблицы employee.
Пример 5.8 эквивалентен примеру 5.7, за исключением того, что первичный ключ таблицы employee создается как ограничение на уровне столбца.
В примере 5.8 предложение primary key принадлежит объявлению соответствующего столбца вместе с его типом данных и указанием о недопустимости пустого значения. По этой причине это ограничение называется ограничением на уровне столбца.