уникальное ограничение на большое текстовое поле - PullRequest
2 голосов
/ 15 ноября 2010

У меня есть таблица со столбцом для записи в фиде xml (nvarchar (max)) и я выполнил хеш-функцию (Md5) для этого столбца, чтобы получить хеш-ключ для помощи в поиске, а также для поддержания уникальности.Как правило, его длина превышает 900 байт. Теперь я понял, что хеш-ключ не гарантирует уникальность, поскольку я просто подсчитал повторяющиеся строки в этом столбце и был поражен, когда попытался создать уникальный индекс для самого столбца хеш-ключа.SQL SERVER дал мне ошибку: не может создать уникальный индекс для недетерминированного столбца ... что-то вроде этого.

Теперь я искал и обнаружил, что в некоторых случаях мне следует использовать тип (ntext) и создать уникальныйуказатель на это;другие упоминают об использовании контрольной суммы и индекса для этого, в то время как другие упоминают триггеры, контрольную сумму и т. д. Какой будет лучший метод для реализации в этой области для уникальности, имея в виду, что таблица уже имеет 22 миллиона записей, и я не могу позволить себе потерять какие-либоданные.Заранее спасибо

1 Ответ

2 голосов
/ 16 ноября 2010

Microsoft рекомендует не использовать типы ntext, поскольку в будущем они будут устаревшими. Документация здесь . Поэтому я бы использовал контрольные суммы и поместил уникальный индекс на это. Этот пост обсуждает это.

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