Уникальная проблема ограничения SQL Server
Как создать индивидуальное ограничение на поле varchar (max) в визуальной студии, визуально.
проблема в том, что я пытаюсь:
управлять индексами и ключами > добавлять > столбцы
Я могу выбрать только столбцы bigint, но не любые из varchar (max).
Возможно, мне придется использовать контрольные ограничения?
Если да, что добавить в выражение?
Thnx для информации
Ответы
Ответ 1
Вы не можете поместить уникальное ограничение в столбец VARCHAR(MAX)
(который может содержать до 2 ГБ текста!!). Просто просто не можешь.
Уникальное ограничение обеспечивается уникальным индексом в фоновом режиме, а SQL Server имеет ограничение на 900 байтов на записи индекса. По этой причине вы также не можете поместить уникальное ограничение в поле VARCHAR(2000)
.
Вам нужно найти другой способ добиться того, что вы пытаетесь сделать. Вы можете, например, вычислите длину и что-то вроде контрольной суммы над текстом и поместите уникальное ограничение на эти столбцы длины и контрольной суммы.
Ответ 2
Даже если бы это было возможно, это была бы плохая идея.
1) Есть и другой способ. Найдите другие данные для использования в качестве уникального столбца
2) Если вы НЕОБХОДИМО использовать символ varchar (Max). Может быть, hash это на вставке/обновлении и добавить столбец хеширования?
Ответ 3
Один из способов сделать это - добавить столбец для хэша, который вычисляется всякий раз, когда вы вставляете или обновляете столбец и помещаете на него уникальный индекс. В то время как столкновение с хэшем происходит, оно чрезвычайно маловероятно.
Вы можете использовать это ключевое слово T-SQL:
http://msdn.microsoft.com/en-us/library/ms174415.aspx