Поделиться через


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

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

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

ПримечаниеПримечание

Чтобы изменить ограничение PRIMARY KEY, необходимо сначала удалить существующее ограничение PRIMARY KEY, а затем создать новое с другим определением.

Если ограничение PRIMARY KEY добавляется к существующему столбцу или столбцам таблицы, компонент Database Engine проверяет данные и метаданные этих столбцов, чтобы проверить их соответствие следующим правилам.

  • Столбцы не должны допускать значений NULL.

    Столбцы ограничения PRIMARY KEY, указанного при создании таблицы, неявно преобразуются в NOT NULL. Разреженный столбец нельзя использовать как часть первичного ключа, так как разреженные столбцы должны допускать значения NULL.

  • В них не должно быть повторяющихся значений.

    Если ограничение PRIMARY KEY добавляется к столбцу, который содержит повторяющиеся значения или допускает значения NULL, компонент Database Engine возвращает ошибку и ограничение не создается.

Ограничение PRIMARY KEY не может быть добавлено к столбцам, нарушающим перечисленные правила.

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

Ограничение PRIMARY KEY не может быть удалено в следующих случаях.

  • Если на него ссылается ограничение FOREIGN KEY из другой таблицы. Сначала должно быть удалено ограничение FOREIGN KEY.

  • К таблице применен индекс PRIMARY XML.

Создание ограничения PRIMARY KEY при создании таблицы

Создание ограничения PRIMARY KEY в существующей таблице

Получение сведений об ограничениях PRIMARY KEY

См. также

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