如何在varchar区分大小写的字段上创建唯一约束 (SQL Server 2005)?
varchar
目前我的约束看起来像这样:
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语法。
add constraint
COLLATE SQL_Latin1_General_CP1_CS_AS
这会将列更改为区分大小写。我认为您的约束没有任何变化…
ALTER TABLE mytable ALTER COLUMN mycolumn VARCHAR(10) COLLATE SQL_Latin1_General_CP1_CS_AS
由于此操作,此列上的任何选择或连接都将区分大小写。