Имя индекса должно быть уникальным в базе данных?
Имена индексов должны быть уникальными по всей базе данных sql-сервера или только для этой таблицы?
Например, следует ли мне указать мой индекс: IX_OrderLoadCarrierDelivery_OrderLoadID
для столбца OrderLoadID
таблицы OrderLoadCarrierDelivery
. Или я должен просто назвать его IX_OrderLoadID
Спасибо!
Ответы
Ответ 1
Они должны быть уникальными для таблицы или представления, для которых они были созданы.
Вот ссылка на msdn, которая описывает это.
FTA:
index_name
Это имя индекса. Имена индексов должны быть уникальными в пределах таблицы или представления, но не обязательно уникальный в базе данных. Названия индексов должен следовать правилам идентификаторов.
Я считаю, что соглашение
IX_FieldName
Ответ 2
Нет, для таблицы.
То есть, уникальная (object_id, name) пара столбцов в sys.indexes, а не просто (имя) в sys.objects(игнорируя schema_id)
Я также использовал бы что-то вроде IX_SingleColumn
или IX_ParentTable
. Добавление таблицы является излишним, в отличие от ограничения по умолчанию или проверки, скажем, уникального для каждого DB
Ответ 3
Они должны быть уникальными, поскольку все хранится в sysobjects с именем в качестве ключа
Если вы используете студию управления SQL, это синтаксис IX_Table_Field