Как создать ограничение на уникальность данных на varchar (макс.) поле в Visual Studio, визуально.
проблема состоит в том, когда я пробую ее:
управляйте индексами, и ключи> добавляют> столбцы
Я могу, только выбрал bigint столбцы, но не любой из varchar (макс.).
Я должен, возможно, использовать проверочные ограничения?
Если да, что вставить выражение?
Спасибо за информацию
Вы не можете наложить уникальное ограничение на столбец VARCHAR (MAX)
(который может содержать до 2 ГБ текста !!). Вы просто не можете.
Ограничение уникальности обеспечивается уникальным индексом в фоновом режиме, а SQL Server имеет ограничение в 900 байт на записи индекса. По этой причине вы также не можете наложить уникальное ограничение на поле VARCHAR (2000)
.
Вам нужно будет найти другой способ добиться того, что вы пытаетесь сделать. Вы могли бы, например, вычислить длину и что-то вроде контрольной суммы для вашего текста и наложить уникальное ограничение на эти столбцы длины и контрольной суммы.
Даже если бы это было возможно, это было бы плохой идеей.
1) Есть другой способ. Найдите другие данные для использования в качестве уникального столбца
2) Если вам АБСОЛЮТНО НУЖНО использовать varchar(Max). Может быть, хэшировать его при вставке/обновлении и добавить хэш-столбец?
Один из способов сделать это - добавить столбец для хэша, который вычисляется всякий раз, когда вы вставляете или обновляете столбец и помещаете в него уникальный индекс. Хотя коллизии хешей случаются, это крайне маловероятно.
Вы можете использовать это ключевое слово T-SQL: