Почему мое уникальное ограничение отображается под индексами, а не под ограничениями?

StackOverflow https://stackoverflow.com/questions/1012969

  •  06-07-2019
  •  | 
  •  

Вопрос

Я создал ограничение для своей таблицы tsql следующим образом:

alter table disabledqualities
add constraint uc_uIdQualCode
unique (userId, qualitycode)

В MSSMStudio ограничение отображается под индексами, а не под ограничениями.

Почему?

--РЕДАКТИРОВАТЬ--
Я понимаю, что он создает индекс для обеспечения соблюдения ограничения, но тогда почему существует узел под названием «ограничения»?

Это было полезно?

Решение

SQL Server незаметно создает индекс для обеспечения соблюдения ограничения.

вот еще один способ написать, что, добавив некластеризованный сервер, сообщающий SQL-серверу использовать некластеризованный индекс, вы также можете создать кластеризованный индекс при условии, что у вас нет кластеризованного ПК (по умолчанию) или другого кластеризованного индекса.

alter table disabledqualities
add constraint uc_uIdQualCode
unique nonclustered (userId, qualitycode)

Изменить], что узел должен добавить ограничение проверки, уникальные ограничения добавляются в соответствии с индексами

в любом случае держись подальше от волшебников

Другие советы

Ограничения проверки и ограничения по умолчанию отображаются под узлом ограничений.

SQL использует индексы для обеспечения соблюдения уникальных ограничений.

Я понимаю, что он создает индекс для обеспечения соблюдения ограничения, но тогда почему существует узел под названием «ограничения»?

Этот узел предназначен для отображения CHECK ограничения.

Правильный ответ: «Потому что Microsoft так сказала».Если вы хотите получить ответ, вам придется спросить их».

Поскольку ограничения UNIQUE можно найти в системном представлении sysindexes.

выберите * из системных индексов, где name = 'uc_uIdQualCode'

Просто логично добавить новую уникальную константу из студии, вам нужно нажать «Управление индексом и кнопкой клавиш».Поэтому, если вы добавляете его из индексов, вы должны увидеть его в индексах :)

Я думаю, возможно, вы не понимаете, что может отображаться в ограничениях, потому что не знаете, что такое проверочное ограничение.Ограничение проверки проверит данные при вставке или обновлении, чтобы определить, соответствуют ли они какому-либо бизнес-правилу.Он используется для обеспечения целостности данных.Например, если у вас есть целочисленное поле, которое должно содержать только значения 1, 4 или 5, вам следует установить проверочное ограничение, чтобы гарантировать, что 9 никогда не добавляется в поле.Ограничение проверки для поля даты может указывать, что оно должно быть позже текущей даты и времени для поля PlannedCompletionDate или что CompletionDate должно быть позже StartDate.Это те вещи, которые проявляются в условиях ограничений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top