一尘不染

T-SQL:如何创建区分大小写的唯一键?

sql

如何在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

阅读 92

收藏
2022-07-17

共1个答案

一尘不染

这会将列更改为区分大小写。我认为您的约束没有任何变化…

ALTER TABLE mytable 
ALTER COLUMN mycolumn VARCHAR(10) 
COLLATE SQL_Latin1_General_CP1_CS_AS

由于此操作,此列上的任何选择或连接都将区分大小写。

2022-07-17