创建区分大小写的目录

时间:2013-04-13 06:46:52

标签: sql-server

我正在尝试创建多个行,这些行具有相同的值,但具有与在字符串列上定义的主键的表不同的大小写。

默认情况下SQL服务器不允许你这样做,有没有办法告诉SQL服务器这是允许的?

2 个答案:

答案 0 :(得分:2)

通过更改“数据库整理”参数,我们可以控制数据库区分大小写。

默认排序规则是SQL_Latin1_General_CP1_CI_AS(CI =>不区分大小写)

通过更改为SQL_Latin1_General_CP1_CS_AS(CS =>区分大小写),您可以启用具有相同主键且具有不同大小写的2行。

答案 1 :(得分:0)

指定表格中列的COLLATION区分大小写。 首先弄清楚数据库正在使用的排序规则。

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS CollationUsedBySQLServerDatabase
-- Mine was Finnish_Swedish_CI_AS

为您的表选择相同的表,但选择它区分大小写(Finnish_Swedish_CS_AS)

create table Users
(
    UserName varchar(5000) COLLATE Finnish_Swedish_CS_AS PRIMARY KEY 
)

insert Users(UserName)
Values ('Peter'), ('PETER')

select * from Users