代码之家  ›  专栏  ›  技术社区  ›  b0x0rz

SQL Server唯一约束问题

  •  14
  • b0x0rz  · 技术社区  · 16 年前

    如何在Visual Studio中的varchar(max)字段上创建唯一约束,可视化。

    问题是当我尝试它时:

    管理索引和键>添加>列

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

    我可能要用吗 检查约束 ?

    如果是,在表达式中加入什么?

    信息的thnx

    3 回复  |  直到 16 年前
        1
  •  16
  •   marc_s MisterSmith    16 年前

    不能对 VARCHAR(MAX) 列(最多2 GB的文本!!!)你就是不能。

    唯一约束由后台的唯一索引强制执行,而SQL Server对索引项的限制为900字节。也不能对 VARCHAR(2000) 因为这个原因。

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

        2
  •  1
  •   Neil N HLGEM    16 年前

    即使可能,这也是个坏主意。

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

    2)如果必须使用varchar(max)。可以在插入/更新时散列并添加散列?

        3
  •  1
  •   Keith Adler    16 年前

    实现这一点的一种方法是为哈希添加一个列,每当插入或更新该列并在其上放置唯一索引时,该列就会被计算出来。当哈希冲突发生时,它是 极其 不太可能。

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

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