大家好,我a数据库中有一张表SoftWare的表,其中有一条SoftWareID(主键)为“S0000001”的记录,a数据库的排序规则设的是:Chinese_PRC_90_CS_AI 。 然后我用这条语句查询的时候 select * from software where SoftWareID='S0000001'的确能够提示表名错误(大小写敏感)。但是select * from software where SoftWareID='S0000001'和select * from software where SoftWareID='s0000001'却都能把记录查询出来。也就是说对字段值是不敏感的这是怎么回事?请问有什么方法可以让它对字段值也敏感。
INSERT @T SELECT 'S0000001'
INSERT @T SELECT 's0000001'
SELECT * FROM @T WHERE TEST='S0000001'
/*TEST
--------------------
S0000001(1 行受影响)*/
SELECT * FROM @T WHERE TEST='s0000001'
/*TEST
--------------------
s0000001(1 行受影响)*/
insert into software values('S0000001')
insert into software values('s0000001')
goselect * from software where SoftWareID='S0000001' and SoftWareID like '%[A-Z]%' COLLATE chinese_prc_bin
/*
SoftWareID
--------------------
S0000001(所影响的行数为 1 行)
*/select * from software where SoftWareID='s0000001' and SoftWareID like '%[a-z]%' COLLATE chinese_prc_bin
/*
SoftWareID
--------------------
s0000001(所影响的行数为 1 行)
*/--drop table software
INSERT @T SELECT 'S0000001'
INSERT @T SELECT 's0000001'
SELECT * FROM @T WHERE TEST='s0000001'
/*TEST
--------------------
S0000001
s0000001(2 行受影响)*/
SELECT * FROM @T WHERE TEST='s0000001' COLLATE Chinese_PRC_90_CS_AI
/*TEST
--------------------
s0000001(1 行受影响)*/