SQL SERVER 的排序规则
有时候查询数据库的时候会发现(比如做重名检查的时候):数据库的查询时对大小写不敏感的,也就是 A 和 a 是一样的。
也就是说 select * from tabletest where name = 'a' 和 select * from tabletest where name = 'A'
两条 sql 语句的执行结果是一样的。
该怎么办呢。。。百度了一下,才了解到这关系到了 SQL SERVER 的排序规则。之前在安装 SQL SERVER 的时候曾经见到过这个选项,但是一直没明白是啥意思。。。
可能这个排序规则的翻译也比较迷惑,英文原文是 collation ,查了一下词典,好像意思是校对整理什么的,反正没看见直接有排序的意思。
不过这个东西也确实跟排序有关,比如有一系列的姓名(中文)数据,就可以指定按拼音排序(Chinese_PRC_)呀,还是按笔画排序(Chinese_PRC_Stroke_)什么的。。。
更多排序规则可查看:https://technet.microsoft.com/zh-cn/library/ms188046.aspx
这里是要为了解决大小写敏感的问题,好吧,也在上面那个网页中有解释,可以设置以下参数:
- CaseSensitivity
- CI 指定不区分大小写,CS 指定区分大小写。
- AccentSensitivity
- AI 指定不区分重音,AS 指定区分重音。
- KanatypeSensitive
- Omitted 指定不区分假名类型,KS 指定区分假名类型。
- WidthSensitivity
- Omitted 指定不区分全半角,WS 指定区分全半角。
设置排序规则的 sql 语句为:
COLLATE Chinese_PRC_CS_AS_KS_WS
前半部分是排序相关的,后半部分就是上面列的那四个选项了,可以根据需要随意添加修改。。。具体怎么加。。。
--要不就百度一下,或者看上面的MSDN链接里面的例子,不想写了。。。
MSDN:https://technet.microsoft.com/zh-cn/library/ff848763.aspx
排序规则可以对服务器进行设置,也可以对数据库进行设置,可以对数据表中的列进行设置,或者随用随设也可以
除了使用 sql 语句设置,还可以通过 SSMS 图形界面设置:
服务器设置可能比较麻烦,需要先停止服务器什么的,最好在安装的时候设置好吧
数据库就直接属性选项里面有下拉列表可以选择设置。
对数据表中的列,在表设计器下面的列属性上可以设置
嗯,还有图形界面可以选择选项(●'◡'●)
请原谅我写的简单。。。(完)
输了你,赢了世界又如何...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2014-07-11 WCF使用net.tcp绑定时的注意事项
2014-07-11 WCF:如何将net.tcp协议寄宿到IIS
2014-07-11 关于WCF服务的调试跟踪