SQLServer的排序规则(字符集编码)

2023年 8月 12日 84.6k 0

一、总结

1.SQLServer中的排序规则就是其他关系型数据库里所说的字符集编码;

2.SQLServer中的排序规则可以在3处设置,如下:

  服务器级别(实例):instances  ----->安装数据库的时候设置

  数据库级别:database

  表列级别:columns

  所以在使用SQLServer的排序规则的时候,只需要保证这三处一致,就是正确的使用方式;

3.SQLServer的排序规则不仅影响记录行的sort顺序,还影响中文显示是否乱码;

4.创建数据库时,若我们未指定排序规则,数据库就会使用实例默认的排序规则;

5.SQLServer的排序规则只影响字符型的列,例如:char,varchar,text,nchar,nvarchar,ntext,因此在查询视图sys.columns中非字符型的字段的排序规则显示是NULL;

6.需要注意的是,虽然数据库的排序规则可以改,但是是有问题的,因为即使把数据库的排序规则改了,库里的表的字段的排序规则可能还是原来的,没有改,这在使用的时候,就可能会存在问题,所以数据库的排序规则尽力不要随意改动。

7.排序规则中,二进制排序的速度是快的,因为SQLServer不用做任何调整即可使用快速、简单的排序算法。

二、查询语句

1.查询字符集编码

命令:

    SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')

      注:

    (1).该数据库实例的排序规则是Chinese_PRC_CI_AS

    (2).查出结果对应的字符集编码

      936 :简体中文GBK

      950  :繁体中文BIG5

      437 :美国/加拿大英语

      932 :日文

      949 :韩文

      866 :俄文

      65001 :unicode UTF-8

      2.查看实例的排序规则命令:

        select serverproperty(N'Collation')

         3.查看实例下所有数据库的排序规则

        命令:

          select name,collation_name from sys.databases

           4.修改现有数据库的排序规则

          命令:

            alter database telno collate Chinese_PRC_BIN

             注:不建议使用,即使是数据库改了,但是库里的表的列还是原来的。

            5.查询列的排序规则命令:

              select name,collation_name from telno.sys.columns where collation_name is not null

               注:非字符型的字段的排序规则显示为NULL,所以要把NULL的结果过滤掉。

              6.查看当前SQLServer版本支持的排序规则命令:  

                select * from ::fn_helpcollations()

                select * from fn_helpcollations()

                  注:

                (1)双冒号是SQL2000中调用内置函数的用法,SQL2005以上不需要使用冒号也能使用内置函数了;

                (2)排序规则代表的意思详解

                    * Chinese_PRC_ :指针对大陆简体字Unicode字符集的排序规则

                  * 后半部分的含义:  

                  _BIN :二进制排序

                  C : case,大小写;

                  A :accent,重音;  

                  I :Insensitive,不敏感,不区分;

                  S :sensitive,敏感,区分;

                  W :width,宽度

                  K :kanatype,假名

                  例如:

                    _CI :不区分大小写

                    _AS :区分重音

                    

                  本文来源https://www.modb.pro/db/75157

                   

                  相关文章

                  SQL数据库触发器语法详解 (sql数据库触发器语法)

                  2023-08-06
                  数据库
                  语法
                  触发器

                  快速简单的删除Oracle数据库字段方法 (删除oracl数据库字段)

                  2023-08-06
                  数据库
                  字段
                  删除

                  如何打开社工数据库bak文件 (社工数据库bak怎么打开)

                  2023-08-06
                  数据库
                  打开
                  社工

                  实现数据库按拼音排序的方法和技巧 (数据库按拼音排序)

                  2023-08-06
                  数据库
                  排序
                  按拼音

                  探究Sybase数据库的性能和功能特点 (sybase数据库怎么样)

                  2023-08-06
                  数据库
                  性能
                  探究

                  SQL Server 如何成功建立自己的数据库? (sql server 建立数据库)

                  2023-08-06
                  数据库
                  自己的
                  建立

                  如何在Oracle中查看数据库触发器? (oracle查看数据库触发器)

                  2023-08-06
                  数据库
                  查看
                  触发器

                  数据库表数据量千万级,对性能影响有多大? (数据库表千万级数据量多吗)

                  2023-08-06
                  数据库
                  级数
                  有多大

                  如何使用Oracle按时间导出表数据库? (oracle按时间导出表数据库)

                  2023-08-06
                  数据库
                  导出
                  如何使用

                  数据库存储:帖子长期保存,信息永不丢失 (帖子存数据库)

                  2023-08-06
                  数据库
                  丢失
                  帖子

                  小米六数据库:全方位数据保障和优化方案 (小米六数据库)

                  2023-08-05
                  数据库
                  优化
                  小米

                  简易教程:使用dbe数据库实现数据连接 (dbe数据库 数据连接)

                  2023-08-05
                  数据
                  数据库
                  连接

                  Oracle实现多个数据库链接的简便方法 (oracle链接多个数据库)

                  2023-08-05
                  数据库
                  多个
                  链接

                  数据库索引:用哪种方法建立? (数据库索引用什么建的)

                  2023-08-05
                  索引
                  数据库
                  哪种

                  实现高效缓存同步:Redis数据库技巧大全 (redis 数据库缓存同步)

                  2023-08-05
                  数据库
                  缓存
                  同步

                  如何利用数据库实现高效的模糊匹配查询? (数据库实现模糊查询)

                  2023-08-05
                  查询
                  数据库
                  模糊

                  数据库有哪些安装方式和位置? (数据库是装在什么上)

                  2023-08-05
                  数据库
                  位置
                  装在

                  Lactmed数据库:妈妈们必备的喂养指南 (lactmed 数据库)

                  2023-08-05
                  数据库
                  必备
                  喂养

                  数据库设计中的主属性定义及作用 (数据库主属性是什么)

                  2023-08-05
                  数据库
                  定义
                  属性

                  数据库分区操作不当常常造成分区不清的问题 (分区不清数据库)

                  2023-08-05
                  数据库
                  分区
                  不清

                  相关文章

                  Oracle如何使用授予和撤销权限的语法和示例
                  Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
                  下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
                  社区版oceanbase安装
                  Oracle 导出CSV工具-sqluldr2
                  ETL数据集成丨快速将MySQL数据迁移至Doris数据库

                  发布评论