我需要能够创建一个唯一的约束来检查字符串和整数组合是否唯一。
我尝试过代码:
ALTER TABLE mytable ADD CONSTRAINT
constraint_Unique_ForeignID_MyString UNIQUE NONCLUSTERED
(
foreign_id, my_string_col
)
但我得到错误:
Ms 1919,Level 16,State 1,Line 1 表中的列'my_string_col' 'my_string_tbl'是一种类型 无效用作的关键列 指数。
Msg 1750,Level 16,State 0,Line 1
无法创建约束。 查看以前的错误。
如何创建我需要的约束?
答案 0 :(得分:3)
它是:
在这种情况下,您可以根据值的哈希值添加计算列,并将其用于约束。
当然,如果你有text / ntext / image,那么这也会失败。因此,更改为SQL Server 2005引入的较新的varchar(max),nvarchar(max),varbinary(max)类型之一,并且哈希
答案 1 :(得分:2)
VARCHAR
的 BIG 如何是你的专栏?
任何索引只能包含最多 900字节总计的列。没有办法解决这个问题,或者将这个数字增加到更高的值。