SqlServer数据库 排序规则 比较时大小写不缺分,〇0数字不分等等

排序是什么?

右键查看数据库属性,会显示你当前库规则是什么,如果建库的时候不指定,会根据系统所在地区,语言,自动识别

SqlServer数据库 排序规则 比较时大小写不缺分,〇0数字不分等等_第1张图片

解释一下这个码什么意思

第一部分呢是指语言,英语,汉语,阿拉伯语等等

第二部分呢是指语言的分类,例如汉语区分简体,大陆,香港等等,一个分类

第三步分是个组合,可以是_CI_AI_KS2,_BIN1,_CS_KS,CI等等

CS和CI是一组,他们不会同时出现,CS代表区分大小写,CI是不缺分大小写的

影响比较结果的第二个原因就是语言分类

SELECT CASE
           WHEN '一二三〇' = '一二三' COLLATE  Chinese_PRC_CS_AS 
		   THEN 
               '一样'
           ELSE
               '不同'
       END;

SqlServer数据库 排序规则 比较时大小写不缺分,〇0数字不分等等_第2张图片

 这个时候你指望着修改第三部分是没有效果的,你需要改语言类型

SqlServer数据库 排序规则 比较时大小写不缺分,〇0数字不分等等_第3张图片

 踩雷结束,当时查询时,怎么查结果怎么不对,闹心了好久,好在有收获,下面是官网连接,很好理解,三两分钟就可以看完

排序规则和 Unicode 支持 - SQL Server | Microsoft Docs

修改数据库的排序规则

使用T-SQL修改数据库的排序规则

USE master;  
GO
--修改数据库的排序规则
ALTER DATABASE MyOptionsTest  
    COLLATE French_CI_AS ;  
GO  
 
--查询数据库的排序规则
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO

官网连接

设置或更改数据库排序规则 - SQL Server | Microsoft Docs

你可能感兴趣的:(sqlserver,数据库开发)