Ограничения PRIMARY KEY

Обычно в таблице есть столбец или комбинация столбцов, содержащих значения, уникально определяющие каждую строку таблицы. Этот столбец, или столбцы, называются первичным ключом (PK) таблицы и обеспечивает целостность сущности таблицы. Можно создать первичный ключ, задав ограничение PRIMARY KEY при создании или изменении таблицы.

В таблице может быть только одно ограничение PRIMARY KEY, и столбец с данным ограничением не может содержать значения NULL. Из-за того, что ограничения PRIMARY KEY гарантируют уникальность данных, они часто определяются в столбце идентификаторов.

При задании для таблицы ограничения PRIMARY KEY компонент SQL Server 2005 Database Engine гарантирует уникальность данных созданием уникального индекса для столбцов первичных ключей. Этот индекс также обеспечивает быстрый доступ к данным при использовании первичного ключа в запросах. Таким образом, выбранные первичные ключи должны соответствовать правилам создания уникальных индексов.

Если ограничение PRIMARY KEY задано более чем для одного столбца, то значения могут дублироваться в пределах одного столбца, но каждая комбинация значений всех столбцов в определении ограничения PRIMARY KEY должна быть уникальной.

Как показано на следующем рисунке, столбцы ProductID и VendorID таблицы Purchasing.ProductVendor формируют составное ограничение PRIMARY KEY для данной таблицы. Это гарантирует уникальность комбинации значений столбцов ProductID и VendorID.

Составное ограничение PRIMARY KEY.

При работе с соединениями ограничения PRIMARY KEY связывают одну таблицу с другой. Например, для определения того, какие поставщики какие продукты поставляют, можно использовать тройное соединение таблиц Purchasing.Vendor, Production.Product и Purchasing.ProductVendor. Из-за того, что ProductVendor содержит одновременно столбцы ProductID и VendorID, доступ к таблице Product и к таблице Vendor может быть осуществлен благодаря их связи с таблицей ProductVendor.

См. также

Основные понятия

Создание и изменение ограничений PRIMARY KEY

Другие ресурсы

CREATE TABLE (Transact-SQL)
ALTER TABLE (Transact-SQL)
DROP TABLE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005