2009-06-18 3 views
0

Я создал ограничение на моем Tsql таблице вроде этого:Почему мое уникальное ограничение появляется под индексами, а не под ограничениями?

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

В MSSMStudio ограничение показывает под индексами, а затем при ограничениях.

Почему?

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

ответ

4

SQL Server создает индекс за сценой, чтобы обеспечить соблюдение ограничений

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

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

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

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

+0

Человек, волшебники меня все больше путают каждый день .. –

0

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

0

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

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

0

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

0

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

выберите * из sysindexes где имя = «uc_uIdQualCode»

Это просто логично Чтобы добавить новый уникальный constaint от студии вам нужно нажать Управление Index и клавишами. Поэтому, если вы добавляете его из Indexes, вы должны увидеть его в Indexes :)

1

Проверить ограничения и ограничения по умолчанию показаны в узле ограничений.

0

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

+0

Да, или что комбинация из двух ключей должна быть уникальной (без первичного ключа). Поэтому я определил уникальное ограничение. Я признаю, что мои знания SQL могут использовать некоторые улучшения, поэтому, пожалуйста, исправьте меня, если я ошибаюсь. –

 Смежные вопросы

  • Нет связанных вопросов^_^