0

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

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

4

2 回答 2

2

通过更改“数据库排序规则”参数,我们可以控制数据库区分大小写。

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

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

于 2013-04-13T06:47:23.477 回答
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
于 2013-04-13T08:25:35.717 回答