程序莫名出错了,查了半天发现是用户身份id居然和sql server数据库里不一致:用户登录软件是用小写输入,数据库里是大写输入。奇怪的是居然可以通过验证!查了gg才知道,原来sql server安装过程中设置不同会造成sql server中对大小写区分的影响。
解决方法大致分为两种:
1、修改数据库大小写区分的设置:
create database test COLLATE Chinese_PRC_CS_AS --创建数据库时指定区分大小写
alter database test COLLATE Chinese_PRC_CS_AS --修改数据库的设置使其区分大小写
Create table test(tid int primary key,tname varchar(20) collate chines_prc_cs_as) --创建表时指定tname列区分大小写。
如果不想区分大小写,将Chinese_PRC_CS_AS替换为Chinese_PRC_CI_AS。
2、sql语句中暂时设置是否区分大小写:
select * from test where tname collate Chinese_PRC_CS_AS_WS like 'a%'
根据需要自行选择设置方法。
关键词:大写 查询 小写