【发布时间】:2010-10-03 21:02:19
【问题描述】:
如何在区分大小写的 varchar 字段上创建唯一约束 (SQL Server 2005)?
目前我的约束如下所示:
alter table MyTable
add constraint UK_MyTable_MyUniqueKey unique nonclustered (MyCol)
当我尝试插入以下两个值时,我收到“违反 UNIQUE KEY 约束...”错误。
insert into MyTable (MyCol) values ('ABC')
insert into MyTable (MyCol) values ('abc') --causes a violation of UNIQUE KEY constraint 'UK_MyTable_MyUnqiueKey'
我希望将两个不同大小写的值作为 unqiue 处理。我想它会涉及以下代码,但我不知道它如何改变我的add constraint 语法。
COLLATE SQL_Latin1_General_CP1_CS_AS
【问题讨论】:
-
您的意思是“区分大小写”还是不区分大小写?如果 ABC 和 abc 的解析相同,那么这是一个“不区分大小写”的比较。你可以重述这个问题
-
是的 - 你是对的。谢谢
-
那么,什么排序规则导致“abc”和“ABC”发生冲突? UTF-8?你还记得吗?谢谢。
标签: sql sql-server tsql constraints