имя индекса должно быть уникальным в базе данных? - PullRequest
24 голосов
/ 14 ноября 2009

Должны ли имена индексов быть уникальными для всей базы данных сервера sql или только для этой таблицы?

Например, я должен назвать свой индекс: IX_OrderLoadCarrierDelivery_OrderLoadID

для столбца OrderLoadID таблицы OrderLoadCarrierDelivery. Или я должен просто назвать это IX_OrderLoadID

Спасибо!

Ответы [ 3 ]

23 голосов
/ 14 ноября 2009

Они должны быть уникальными для таблицы или представления, для которых они были созданы.

Вот ссылка на MSDN , которая детализирует это.

FTA:

index_name

Имя индекса. Имена индексов должны быть уникальными в пределах таблица или представление но не обязательно уникальный в базе данных. Индексные имена должны следовать правилам идентификаторов.

Я считаю, что конвенция

IX_FieldName
7 голосов
/ 14 ноября 2009

Нет, за таблицу.

То есть уникальная пара столбцов (object_id, name) в sys.indexes, а не просто (name) в sys.objects (игнорируя schema_id)

Я бы также использовал что-то вроде IX_SingleColumn или IX_ParentTable. Добавление таблицы излишне, в отличие от ограничения по умолчанию или проверки, скажем, уникального для БД

0 голосов
/ 14 ноября 2009

Они должны быть уникальными, так как все хранится в sysobjects с именем в качестве ключа Если вы используете SQL Management Studio, это синтаксис IX_Table_Field

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...