SQL Server唯一约束问题

时间:2010-05-07 20:56:12

标签: sql sql-server visual-studio-2010 unique-constraint

如何在visual studio中的varchar(max)字段上创建唯一约束。

问题出在我尝试的时候:

管理索引和键>添加>列

我只能选择bigint列,但不能选择任何varchar(max)列。

我是否可能必须使用检查约束

如果是,请在表达式中添加什么内容?

信息的Thnx

3 个答案:

答案 0 :(得分:18)

您不能在VARCHAR(MAX)列(可能最多2 GB的文本!!)上添加唯一约束。你根本就不能。

唯一约束由后台唯一索引强制执行,SQL Server对索引条目有900字节限制。由于这个原因,您也无法在VARCHAR(2000)字段上添加唯一约束。

你需要找到另一种方法来实现你想要做的事情。你可以,例如计算文本的长度和校验和,并对这些长度和校验和列设置唯一约束。

答案 1 :(得分:1)

即使这是可能的,也不是一个好主意。

1)还有另一种方式。查找其他一些数据以用作您的唯一列

2)如果你绝对必须使用varchar(Max)。也许在插入/更新时将其哈希并添加哈希列?

答案 2 :(得分:1)

执行此操作的一种方法是为每次插入或更新列时计算的哈希添加列,并在其上添加唯一索引。虽然确实发生了哈希冲突,但非常不太可能。

您可以使用此T-SQL关键字:

http://msdn.microsoft.com/en-us/library/ms174415.aspx