Я думаю, что это не ключ: это ограничение.
Это может использоваться, конечно, как ключ, и однозначно идентифицирует строку, но это не ключ.
Примером может служить то, что ключом является «ThingID», суррогатный ключ , используемый вместо естественного ключа ThingName.Вам все еще нужно ограничить ThingName: хотя он не будет использоваться в качестве ключа.
Я бы также использовал UQ и UQC (если кластеризован).
Вывместо этого можно использовать уникальный индекс и перейти к «IXU».По используемой логике индекс также является ключом, но только когда он уникален.В противном случае это индекс.Тогда мы начнем с IK_columnname
для уникальных индексов и IX_columnname
для неуникальных индексов.Изумительно.
И единственное различие между уникальным ограничением и уникальным индексом - ВКЛЮЧИТЬ столбцы.
Редактировать: февраль 2013 г. Начиная с SQL Server 2008, индексы также могут иметь фильтры.Ограничения не могут
Итак, все сводится к одной из
- флешек с UQ согласно остальной части планеты, использующей SQL
- использует IK для уникальных индексов(IKC для кластера тоже), чтобы быть согласованным ...