如何在Visual Studio中可视化地创建一个varchar(max)字段的唯一约束。
问题是当我尝试时:
管理索引和键 > 添加 > 列
我只能选择bigint列,而不能选择任何varchar(max)列。
我可能需要使用检查约束吗?
如果是,表达式里该写什么呢?
感谢提供信息。
如何在Visual Studio中可视化地创建一个varchar(max)字段的唯一约束。
问题是当我尝试时:
管理索引和键 > 添加 > 列
我只能选择bigint列,而不能选择任何varchar(max)列。
我可能需要使用检查约束吗?
如果是,表达式里该写什么呢?
感谢提供信息。
在一个 VARCHAR(MAX)
列上(可能高达2GB文本!!),您不能设置唯一约束。这是根本不可能的。
唯一约束由后台的唯一索引强制执行,而SQL Server对索引条目有900字节的限制。出于同样的原因,您也不能在 VARCHAR(2000)
字段上设置唯一约束。
您需要找到另一种方法来实现您想要做的事情。例如,您可以计算文本的长度和校验和,并在这些长度和校验和列上设置唯一约束。
一种方法是在插入或更新列时计算哈希值并添加一个用于哈希的列,并在其上放置唯一索引。虽然哈希冲突确实会发生,但这是极不可能的。
您可以使用此T-SQL关键字: