我正在尝试创建多个行,这些行具有相同的值,但具有与在字符串列上定义的主键的表不同的大小写。
默认情况下SQL服务器不允许你这样做,有没有办法告诉SQL服务器这是允许的?
答案 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