Що це за перевернутий срібний значок ключа


11

Я успадкував сторонній сервер і базу даних SQL Server 2005, щоб шукати, щоб можна було генерувати звіти та інформаційні панелі.

На одному столі я знайшов нову піктограму: синьо-сріблястий перевернутий ключ поряд з іншими моїми первинними та зовнішніми ключами.

Коли я клацнув правою кнопкою миші, контекстне меню дає мені можливість "Сценарій обмежень як", але коли я намагаюся "Змінити" його, він відкриває форму дизайну стовпців (як первинні ключі), і все ж воно з'являється у Розділ "Індекси", а не обмеження.

Хтось знає, як це називається і для чого він використовується?

Клавіша "вниз"

Відповіді:


12

Це означає унікальне обмеження. У SQL Server унікальне обмеження реально реалізовано як індекс під обкладинками; саме тому він відображається і під Indexesвузлом (я не можу дати вам хорошого пояснення, чому він, принаймні, не вказаний під Constraintsвузлом, а також чому вони обрали клавішу вниз головою замість просто іншого кольору).

Ви повинні побачити результат, щоб підтвердити, що це реально реалізовано як індекс:

SELECT index_id, type_desc, is_unique_constraint
  FROM sys.indexes
  WHERE name = N'IX_tblCustIndex';

Ви сказали, що бачили "обмеження сценарію як ..." - якби ви дотримувались цього, це надало б вам сценарій на кшталт:

ALTER TABLE [dbo].[tblCustIndex] ADD UNIQUE NONCLUSTERED 
(
  [some_column] ASC
) WITH (...a bunch of default options...)

Але не запускайте його, оскільки цей синтаксис не використовує імені, і він просто створить друге, зайве унікальне обмеження ...

Ось дуже простий доказ і доказ того, що я отримую перевернутий ключ навіть із дуже базовим синтаксисом у 2014 році:

CREATE TABLE dbo.foo(id INT UNIQUE);

введіть тут опис зображення натисніть для збільшення

Тепер ви можете отримати інший значок, якщо явно створити унікальний індекс (і єдині відмінності, які ви побачите, sys.indexes- це ім'я та значення is_unique_constraint):

введіть тут опис зображення натисніть для збільшення

Інші відмінності див . У відповіді на переповнення стека .


1
Це специфічно для SQL2005? Тому що, коли я намагаюся додати UNIQUE індекс, я отримую інший значок (якесь перевернене дерево). І коли я додаю обмеження, я отримую якусь піктограму з таблицею з квадратними дужками. Я, здається, не можу відтворити цю іконку.
Філіпп

@Philippe Оновлена ​​відповідь.
Аарон Бертран

Спасибі. Це було детальне пояснення, і швидке! :-)
Філіпп
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.