可能重复:
SQL服务器忽略where表达式中的大小写
基本上我需要检查这样的事情
select * from users where name = @name, pass = @pass
Run Code Online (Sandbox Code Playgroud)
问题是 'pass' = 'pAsS'
sql中是否存在更严格的字符串比较(ms sql-server)
这取决于你的整理,它似乎不区分大小写.例如,标准排序规则是Latin1_General_CI_AS,CI表示不区分大小写.您可以强制使用不同的协作进行不同的比较:
select *
from users
where name = @name
and pass COLLATE Latin1_General_CS_AS = @pass COLLATE Latin1_General_CS_AS
Run Code Online (Sandbox Code Playgroud)
顺便说一下,你不应该在你的数据库中存储密码 - 你应该对它们进行盐化和散列.