Я хочу добавить уникальное ограничение для 1 int столбца существующей таблицы с примерно 1/2 миллиона строк или около того. Ive также видел упоминания об использовании отфильтрованного индекса. Однако нет ли проблем с созданием отфильтрованного индекса, если вы хотите позже (или уже иметь) внешние ключи, которые ссылаются на эти столбцы?Уникальное ограничение на таблицу с существующими данными
Могу ли я добавить уникальное ограничение, если некоторые из строк уже недействительны? Я хочу остановить дальнейшие вставки, если ограничение завершилось с ошибкой.
ALTER TABLE dbo.MyTable
ADD CONSTRAINT UX_mycnstrtname UNIQUE([col1])
Фактически, приведенное выше не будет выполнено, если у меня уже есть записи, которые являются дубликатами в одном столбце.
Таким образом, с отфильтрованным индексом, например, так:
CREATE UNIQUE NONCLUSTERED INDEX [UX_1PerX] ON [dbo].[MyTable]
(
[TableID] ASC
)
WHERE (ID > 888876)
Мой вопрос сейчас - это будет вызывать какие-либо проблемы, связанные с внешними ключами, которые ссылаются на эту колонку (TABLEID)?
В чем вопрос? Если данные не уникальны, то уникальное ограничение не будет выполнено –