如何在visual studio中的varchar(max)字段上创建唯一约束。
问题出在我尝试的时候:
管理索引和键>添加>列
我只能选择bigint列,但不能选择任何varchar(max)列。
我是否可能必须使用检查约束?
如果是,请在表达式中添加什么内容?
信息的Thnx
答案 0 :(得分:18)
您不能在VARCHAR(MAX)
列(可能最多2 GB的文本!!)上添加唯一约束。你根本就不能。
唯一约束由后台唯一索引强制执行,SQL Server对索引条目有900字节限制。由于这个原因,您也无法在VARCHAR(2000)
字段上添加唯一约束。
你需要找到另一种方法来实现你想要做的事情。你可以,例如计算文本的长度和校验和,并对这些长度和校验和列设置唯一约束。
答案 1 :(得分:1)
即使这是可能的,也不是一个好主意。
1)还有另一种方式。查找其他一些数据以用作您的唯一列
2)如果你绝对必须使用varchar(Max)。也许在插入/更新时将其哈希并添加哈希列?
答案 2 :(得分:1)
执行此操作的一种方法是为每次插入或更新列时计算的哈希添加列,并在其上添加唯一索引。虽然确实发生了哈希冲突,但非常不太可能。
您可以使用此T-SQL关键字: