对大文本字段的唯一约束

时间:2010-11-15 20:51:22

标签: sql-server-2005 sql-server-2008

我有一个表,其中xml feed条目的列为(nvarchar(max))并在此列上执行散列函数(Md5)以获取散列键以帮助搜索并保持唯一性。它通常超过900个字节。现在我已经意识到哈希键不能保证唯一性,因为我只是对该列进行了重复行计数并且当我尝试在哈希键列本身上创建唯一索引时感到惊讶,SQL SERVER给了我一个错误 无法在非确定性列上创建唯一索引。就像那样。

现在我已经搜索并发现在某些情况下我应该使用type(ntext)并在其上创建一个唯一索引;其他人提到使用校验和及其索引,而其他人提到触发器,校验和等。 哪个是在此字段上实现唯一性的最佳方法,请记住该表已有2200万条记录,我不能丢失任何数据。 提前致谢

1 个答案:

答案 0 :(得分:2)

Microsoft建议不要使用ntext类型,因为它们将来会被弃用。文档为here。所以我会使用校验和并在其上放置唯一索引。 This post讨论了这一点。