当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《T-SQL:如何创建区分大小写的唯一键?》经验,为你挑选了1个好方法。

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

Jason Punyon.. 50

这会将列更改为区分大小写.我认为你的约束没有任何改变......

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

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



1> Jason Punyon..:

这会将列更改为区分大小写.我认为你的约束没有任何改变......

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

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


本专栏涉及的所有内容都区分大小写.
您必须删除约束,运行ALTER,再次添加PK以处理依赖关系
如果列不仅包含Latin1字符,还包含以UTF-8编码的其他字母表(当前大多数应用程序中都是标准的),我该怎么做呢?
推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有