Создание и изменение ограничений UNIQUE
Ограничение UNIQUE может быть создано как часть определения таблицы при ее создании. Ограничение UNIQUE может быть добавлено к уже существующей таблице при условии, что столбец или комбинация столбцов, на которых оно основывается, содержат только уникальные значения. Таблица может содержать несколько ограничений UNIQUE.
Если ограничение UNIQUE уже существует, оно может быть изменено или удалено. Например, может понадобиться связать ограничение UNIQUE с другими столбцами либо изменить тип кластеризации индекса.
Примечание |
---|
Чтобы изменить ограничение UNIQUE, необходимо вначале удалить существующее ограничение, а затем создать его повторно с помощью нового определения. |
При добавлении ограничения UNIQUE на уже существующий столбец или группу столбцов в таблице, компонент Database Engine по умолчанию проверяет уникальность всех существующих значений в указанных столбцах. При попытке добавить ограничение UNIQUE к столбцу, содержащему повторяющиеся значения, компонент Database Engine возвращает ошибку, а ограничение не добавляется.
Компонент Database Engine автоматически создает индекс UNIQUE, что обеспечивает выполнение требований уникальности значений для ограничений UNIQUE. Поэтому, при попытке вставки в таблицу строки с повторяющимися данными, компонент Database Engine выдает сообщение об ошибке, в котором сообщается о нарушении ограничения UNIQUE, а строка в таблицу не вставляется. Для обеспечения выполнения ограничения UNIQUE по умолчанию создается уникальный некластеризованный индекс, если явно не указано создание кластеризованного индекса.
В приведенном ниже фрагменте инструкции CREATE TABLE показано определение столбца Name и на этот столбец задано ограничение UNIQUE, гарантирующее уникальность значений.
Name nvarchar(100) NOT NULL
UNIQUE NONCLUSTERED
Чтобы снять требования уникальности, предъявляемые значениям в столбцах таблицы, включенной в ограничение UNIQUE, необходимо удалить это ограничение. Ограничение UNIQUE не может быть удалено, если связанный с ним столбец используется в качестве полнотекстового ключа таблицы.
Создание ограничения UNIQUE при создании таблицы
Создание ограничения UNIQUE в существующей таблице
Удаление ограничения UNIQUE
Получение сведений об ограничении UNIQUE
См. также