SQL Server中全角半角字符查询使用的详细说明
来源:互联网 发布:java cpu利用率 编辑:程序博客网 时间:2024/05/17 01:04
在SQL Server数据库安装的时候,需要选择排序方式,一般默认为:Chinese_PRC_CI_AS。
选择“Chinese_PRC_CI_AS”后,那么对于全角半角字符的区别是忽略,也就说会有不期望的记录出现在结果集中。
如果某系统同时存在“C用户”(全角)和“C用户”(半角),并且排序规则为“Chinese_PRC_CI_AS”时,那么在登录用户名验证时,会返回两条记录,对于登录验证来说这样的错误是致命的!
问题:
SELECT * FROM users WHERE name = 'C用户' COLLATE Chinese_PRC_CI_AS
返回:“C用户”和“C用户”
解决方案:
SELECT * FROM users WHERE name = 'C用户' COLLATE Chinese_PRC_CI_AS_WS
返回:“C用户”
心得:
我们在进行中文值比对时,最好在SQL语句里跟上排序规则显式指定语句:COLLATE Chinese_PRC_CI_AS_WS,这样可以做到既不影响全局设置,又使当前SQL语句运行期望的排序规则,增加了SQL语句的安全性和可靠性。
排序规则说明(详见:SQL联机丛书中的“Windows 排序规则排序样式”):
Chinese_PRC_CI_AS_WS
Chinese_PRC:排序规则名。详见:SQL联机丛书中的“SQL 排序规则名称”。
CI:指定不区分大小写;另可指定CS,表示区分大小写。
AS:指定不区分重音;另可指定AS,表示区分重音。
WS:指定 SQL Server 区分相同字符的单字节表示法(半角)和双字节表示法(全角)。为空时不区分。
- SQL Server中全角半角字符查询使用的详细说明
- SQL Server中全角和半角字符的比较问题
- SQL Server中全角和半角字符的比较问题
- SQL Server中全角和半角字符的比较问题
- SQL Server中全角和半角字符的比较问题
- SQL Server中全角和半角字符的比较问题
- SQL Server中全角和半角字符的比较问题
- SQL Server中全角半角的转换
- sql 全角字符,半角字符查询
- SQL Server中比较全角和半角字符
- SQL SERVER 全角和半角的解决方法
- Java中全角/半角字符的转换
- 字符串中全角半角字符的转换
- Java中字符的全角半角转换
- sql server 2005全角与半角字符转换
- 对于字符串中全角字符和半角字符的判断
- C#中半角字符与全角字符的互转
- sql 实现全角与半角字符转换的处理函数
- 请教 cannot execute binary file问题
- MySQL has gone away
- 什么是AHB总线和AMBA
- 摄像头 android
- OutputStreramWriter||InputStreamReader
- SQL Server中全角半角字符查询使用的详细说明
- Linux0.12-文件系统-系统调用接口
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(二uboot移植)
- 对话框窗口最大化盖住任务栏问题!
- 自定义ProgressDialog
- Html.ActionLink
- 视觉设计师
- 动态分段
- svn + linux 链接