MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sqlserver 排序规则大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

   更改数据库排序规则从laTin到prc_ci_as在数据库属性--选项组里面选择如果报关联错误(如关联的表,视图,存储过程,函数)需要先将之前的关联项删除重新建立或者将它们导出到另一个数据库在修改完数据库排序规则后在导入回来,我觉得只有这俩种办法。如果有更好的希望留言,共同学习。下面普及一下排序规则的知识。

 

看看MS对排序规则的解释:MS是这样描述的:"在 Microsoft sql Server 2000 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。"
       也就是说,在sqlSERVER中,排序规则实际上就是字符编码。

       在查询分析器内执行下面语句,可以得到sql SERVER支持的所有排序规则。 
SELEct * from ::fn_Helpcollations() 
        排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
        如:Chinese_PRC_CS_AI_WS 
        前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
        排序规则的后半部份即后缀含义:
    _BIN 二进制排序
      _CI(CS) 是否区分大小写,CI不区分,CS区分
     _AI(AS) 是否区分重音,AI不区分,AS区分   
    _KI(KS) 是否区分假名类型,KI不区分,KS区分 
            _WI(WS) 是否区分宽度 WI不区分,WS区分 
         区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
         区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。
         区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
         区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

微软官方对重音和大小写的解释如下:

区分大小写 (_CS)

区分大写字母和小写字母。如果选择此项,排序时小写字母将在其对应的大写字母之前。

如果未选择此选项,则 sql Server 认为字母的大小写形式对于排序目的而言是相同的。

区分重音 (_AS)

区分重音字符和非重音字符。例如,“a”和“ấ”视为不同字符。

如果未选择此项,在排序时,sql Server 将把字母的重音形式和非重音形式视为相同。

区分假名 (_KS)

区分日语中的两种假名字符类型:平假名和片假名。

如果未选择此选项,则 sql Server 认为片假名字符和平假名字符对于排序目的而言是相等的。

区分全半角 (_WS)

区分字符的单字节形式和双字节形式。

如果未选择此项,在排序时,sql Server 将把同一字符的单字节形式和双字节形式视为相同。

 

如果你实在不想修改或者修改总是失败提供俩种其他方法借鉴: 一:对于存在汉字显示??,同时又不想更改数据库上的排序规则,又想要正确显示出汉字的话,建议在设计时全部使用Unicode类型字段,也就是那些以N开头的字段类型,比如nChar,nVarchar,才可以正确显示汉字。 二:如果不想更改排序规则,又不想更改字段类型,那么就要更改sql语句,对于所有的汉字,前面也要加上N才可以正确显示。具体的方法请参下面两条语句: 查询:SELEct * FROM tb_Cust where FirstName=N'汪' 插入:insert tb_Cust(FirstName,LastName,SeX) values(N'汪',N'鑫昊',N'男')

大佬总结

以上是大佬教程为你收集整理的sqlserver 排序规则全部内容,希望文章能够帮你解决sqlserver 排序规则所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。