当前位置:首页 » 数据仓库 » 数据库默认排序规则
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库默认排序规则

发布时间: 2023-04-01 05:53:14

① 通过sql语句使用什么命令创建数据库

CREATE DATABASE 为SQl语句,用于创建数据库。

语法

CREATE DATABASEdatabase_name

[ ON

[ < filespec > [,...n] ]

[,< filegroup > [,...n] ]

]

[ LOG ON { < filespec > [,...n] } ]

[ COLLATEcollation_name]

[ FOR LOAD | FOR ATTACH ]

< filespec > ::=

[ PRIMARY ]

([ NAME=logical_file_name,]

FILENAME='os_file_name'

[,SIZE=size]

[,MAXSIZE={max_size| UNLIMITED } ]

[,FILEGROWTH=growth_increment])[,...n]

< filegroup > ::=

FILEGROUPfilegroup_name< filespec > [,...n]

参数

database_name

新数据库的名称。数据库名称在服务器中必须唯一,并且符合标识符的规则。database_name最多可以包含 128 个字符,除非没有为日志指定逻辑名。如果没有指定日志文件的逻辑名,则 Microsoft&reg; SQL Server™ 会通过向database_name追加后缀来生成逻辑名。该操作要求database_name在 123 个字符之内,以便生成的日志文件逻辑名少于 128 个字符。

ON

指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义主文件组的数据文件。主文件组的文件列表后可跟以逗号分隔的 <filegroup> 项列表(可选),<filegroup> 项用以定义用户文件组及其文件。

n

占位符,表示可以为新数据库指定多个文件。

LOG ON

指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 <filespec> 项列表,<filespec> 项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。

FOR LOAD

支持该子句是为了与早期版本的 Microsoft SQL Server 兼容。数据库在打开dbo use only数据库选项的情况下创建,并且将其状态设置为正在装载。SQL Server 7.0 版中不需要该子句,因为 RESTORE 语句可以作为还原操作的一部分重新创建数据库。

FOR ATTACH

指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的 <filespec> 条目。至于其它 <filespec> 条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 <filespec> 条目。

附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用sp_attach_db系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 <filespec> 项目时,才需要使用 CREATE DATABASE FOR ATTACH。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行sp_removedbreplication从数据库删除复制。

collation_name

指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。

有关 Windows 和 SQL 排序规则名称的更多信息,请参见COLLATE。

PRIMARY

指定关联的 <filespec> 列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 <filespec> 条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。

NAME

为由 <filespec> 定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。

logical_file_name

用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。

FILENAME

为 <filespec> 定义的文件指定操作系统文件名。

'os_file_name'

操作系统创建 <filespec> 定义的物理文件时使用的路径名和文件名。os_file_name中的路径必须指定 SQL Server 实例上的目录。os_file_name不能指定压缩文件系统中的目录。

如果文件在原始分区上创建,则os_file_name必须只指定现有原始分区的驱动器字母。每个原始分区上只能创建一个文件。原始分区上的文件不会自动增长;因此,os_file_name指定原始分区时,不需要指定 MAXSIZE 和 FILEGROWTH 参数。

SIZE

指定 <filespec> 中定义的文件的大小。如果主文件的 <filespec> 中没有提供 SIZE 参数,那么 SQL Server 将使用model数据库中的主文件大小。如果次要文件或日志文件的 <filespec> 中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。

size

<filespec> 中定义的文件的初始大小。可以使用千字节(KB)、兆字节(MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size的最小值为 512 KB。如果没有指定size,则默认值为 1 MB。为主文件指定的大小至少应与model数据库的主文件大小相同。

MAXSIZE

指定 <filespec> 中定义的文件可以增长到的最大大小。

max_size

<filespec> 中定义的文件可以增长到的最大大小。可以使用千字节(KB)、兆字节(MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定max_size,那么文件将增长到磁盘变满为止

说明在磁盘即将变满时,Microsoft Windows NT&reg; S/B 系统日志会警告 SQL Server系统管理员。

UNLIMITED

指定 <filespec> 中定义的文件将增长到磁盘变满为止。

FILEGROWTH

指定 <filespec> 中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。

growth_increment

每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。

如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。

(1)数据库默认排序规则扩展阅读

组成

在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:

1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。

5、用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。

6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。

参考资料来源:网络-SQL数据库

参考资料来源:网络-Create Database

② 如何修改SQL数据库默认排序

在网上查了一些关于更改SQL SERVER2012数据库安装后的默认排序规则(Server Collation)的方法。经过实践测试,把成功的方法记录于此,方便大家查阅。具体的操作还是比较简单的:1.首先打开命令提示符,即win+r,在弹出的窗口中输入cmd即可进入命令提示符窗口;2.在命令提示符窗口中定位在你的SQL SERVER 2012安装包的根目录(注意:是SQL SERVER 2012的安装包哟)如我的安装在D盘的Download文件夹下的SQLSERVER2012SP1文件夹下,那么就进行到SQLSERVER2012SP1这个目录下3.最后运行如下命令:D:DownloadSQLServer2012SP1>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=account /SAPWD=xxxxxxxx /SQLCOLLATION=Chinese_PRC_CI_AS
即可更改SQL SERVER 2012的默认排序规则(Server Collation)。第三步中的参数说明:INSTANCENAME:数据库的实例名,默认的就是:你的数据库管理账号SAPWD:sa账户的密码,可选SQLCOLLATION:需要修改成的排序规则

③ SQL SERVER 2008 如何更改默认的排序规则

请问怎么更改排序规则呢

1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看你的排序规则.
不过你的这个应该和字符集有关.

2.更改服务器排序规则
更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤:

确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本
使用工具(例如大容量复制)导出所有数据。
删除所有用户数据库。
重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库。例如:
复制代码
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有关重新生成 master 数据库的详细信息,请参阅如何重新生成 SQL Server 2005 的 Master 数据库。
创建所有数据库及这些数据库中的所有对象。
导入所有数据。
注意:
可以为创建的每个新数据库指定默认排序规则,而不更改 SQL Server 2005 实例的默认排序规则。

3.设置和更改数据库排序规则
创建新数据库时,可以使用下列内容之一指定排序规则:
CREATE DATABASE 语句的 COLLATE 子句。
SQL Server Management Studio.
SQL 管理对象 (SMO) 中的 Database.Collation 属性。
如果未指定排序规则,则使用服务器排序规则。
可以使用 ALTER DATABASE 语句的 COLLATE 子句来更改在用户数据库中创建的任何新对象的排序规则。使用此语句不能更改任何现有用户定义的表中列的排序规则。使用 ALTER TABLE 的 COLLATE 子句可以更改这些列的排序规则。
更改数据库排序规则时,需要更改下列内容:
数据库的默认排序规则,这一新的默认排序规则将应用于数据库中后续创建的所有列、用户定义的数据类型、变量和参数。根据数据库中定义的对象解析 SQL 语句中指定的对象标识符时,也使用新的默认排序规则。
将系统表中的任何 char、varchar、text、nchar、nvarchar 或 ntext 列更改为使用新的排序规则。
将存储过程和用户定义函数的所有现有 char、varchar、text、nchar、nvarchar 或 ntext 参数和标量返回值更改为使用新的排序规则。
将 char、varchar、text、nchar、nvarchar 或 ntext 系统数据类型和基于这些系统数据类型的所有用户定义的数据类型更改为使用新的默认排序规则。

SQL code :

1.将数据库的字符集修改为:
alter database dbname collate Chinese_PRC_CI_AS

2.

--1. 为数据库指定排序规则
CREATE DATABASE db COLLATE Chinese_PRC_CI_AS
GO

ALTER DATABASE db COLLATE Chinese_PRC_BIN
GO

/*====================================*/

--2. 为表中的列指定排序规则
CREATE TABLE tb(
col1 varchar(10),
col2 varchar(10) COLLATE Chinese_PRC_CI_AS)
GO

ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN
GO

ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN
GO

/*====================================*/

--3. 为字符变量和参数应用排序规则
DECLARE @a varchar(10),@b varchar(10)
SELECT @a='a',@b='A'

--使用排序规则 Chinese_PRC_CI_AS
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a<>@b' END
--结果:@a=@b

--使用排序规则 Chinese_PRC_BIN
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a<>@b' END
--结果:@a<>@b

3.

ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不区分大小写
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写
数据库
ALTER DATABASE database
COLLATE Chinese_PRC_CS_AS
--区分大小写

ALTER DATABASE database COLLATE Chinese_PRC_CI_AS --不区分大小写

方法一.安装SQL时选择区分大小写
或安装完以后重建mastar,选择区分大小
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\rebuildm.exe

方法二.sql server 8.0以上的版本才可以,7.0及其以下不支持
alter database 数据库 COLLATE Chinese_PRC_CS_AS
修改排序规则,改成大小写敏感的排序规则
如果只修改一个表,用alter table语句
如果修改一个库的默认排序规则,用alter datebase语句
如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库
--指定排序规则就可以了

--示例
select replace('AbacB' collate Chinese_PRC_CS_AS_WS,'B','test')

--如果你是要求表支持,则可以建表时指定排序规则,这样replace就不用写排序规则了

--示例
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values('Abac')

select replace(a,'a','test') from tb

drop table tb

指定排序规则即可

Windows 排序规则名称
在 COLLATE 子句中指定 Windows 排序规则名称。Windows 排序规则名称由排序规则指示器和比较风格构成。

语法
< Windows_collation_name > :: =

CollationDesignator_ <ComparisonStyle>

< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN

参数
CollationDesignator

指定 Windows 排序规则使用的基本排序规则。基本排序规则包括:

当指定按字典排序时应用其排序规则的字母表或语言

用于存储非 Unicode 字符数据的代码页。
例如 Latin1_General 或法文,两者都使用代码页 1252,或土耳其文,它使用代码页 1254。

CaseSensitivity

CI 指定不区分大小写,CS 指定区分大小写。

AccentSensitivity

AI 指定不区分重音,AS 指定区分重音。

KanatypeSensitive

Omitted 指定不区分大小写,KS 指定区分假名类型。

WidthSensitivity

Omitted 指定不区分大小写,WS 指定区分大小写。

BIN

指定使用二进制排序次序。

如果你只是目前查询区分,那么还是不要这样改,免得又反悔,如此查询:
select * from a
/*
a_nam a_add
---------- ----------
1 aa
1 bb
2 cc
2 vv
2 kk
3 dd
3 ee
4 dd
5 ee
6 yy
6 yy

(11 row(s) affected)
*/
现在我们查询a_add = 'aa'的,'Aa'等等不行!
Example 1:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'aa'
/*
a_nam a_add
---------- ----------
1 aa

(1 row(s) affected)
*/

Example 2:

select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'Aa'
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

方法三.上面的记不住,那么就用最笨的方法,转化为ascii
select * from a
where
ascii(substring(a_add,1,1)) = ascii(substring('Aa',1,1))
and
ascii(substring(a_add,2,1)) = ascii(substring('Aa',2,1))
/*
a_nam a_add
---------- ----------

(0 row(s) affected)
*/

方法三:任何版本都可以
select * from a
where cast(a_add as varbinary(10))= cast('aa' as varbinary(10))

④ SQL2000怎么设置默认排序规则为Chinese_PRC

解决的办法是指名排序方式,告诉查询分析器应该怎样排序即可。这里会需要用到一个关键字 COLLATE
Coliate 在SQLServer联机丛书中是这样解释的
COLLATE
一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。

语法
COLLATE < collation_name >

< collation_name > ::=
|

参数
collation_name

是应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。

Windows_collation_name
是 Windows 排序规则的排序规则名称。请参见 Windows 排序规则名称。

SQL_collation_name
是 SQL 排序规则的排序规则名称。请参见 SQL 排序规则名称。

那么我们怎么可以知道当前的排序规则名称是什么呢,其实这个排序规则名称是我们在创建数据库(实例)的时候就可以进行选择的,不过通常情况下我们都会默认原来的设定,不会对其进行变更,所以如果是简体中文的SQLServer就会默认的使用简体中文的排序规则,而如果是繁体中文的SQLServer 就会默认的使用繁体中文的排序规则。我们在察看数据库(实例)的属性时,常规页签的最下面一行就是当前的排序规则。在默认的情况下,简体中文的排序规则名称是:Chinese_PRC_CI_AS,而繁体中文的排序规则名称则是:Chinese_Taiwan_Stroke_CI_AS,所以我们如果在有简体繁体排序规则名称混用的时候,只要声明一下你当前要使用哪种排序规则进行比较就可以了,例如针对上面的那个SQL语句,下面两种方法都可以解决那个错误提示的问题
SELECT Table1.*,Table2.*
FROM Table1
INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_PRC_CI_AS

SELECT Table1.*,Table2.*
FROM Table1
INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_Taiwan_Stroke_CI_AS

说了半天如何解决排序规则冲突引起的问题,如果还有兴趣的话,下面把SQL Server联机丛书里面关于排序规则的概念贴出来给大家分享一下,省得大家再去找:
Microsoft® SQL Server™ 2000 支持多种排序规则。排序规则对控制正确使用语言(如马其顿语或波兰语)或字母表(如西欧语言使用的拉丁字母表 Latin1_General)字符的规则进行编码。

每个 SQL Server 排序规则指定三个属性:

用于 Unicode 数据类型(nchar、nvarchar 和 ntext)的排序次序。排序次序定义字符的排序序列,以及在比较操作中对字符取值的方法。

用于非 Unicode 字符数据类型(char、varchar 和 text)的排序次序。

用于存储非 Unicode 字符数据的代码页。

说明 不能指定与 Unicode 数据类型(nchar、nvarchar 和 ntext)对应的代码页。用于 Unicode 字符的双字节位模式由 Unicode 标准定义且不能更改。

可在任何级别上指定 SQL Server 2000 排序规则。安装 SQL Server 2000 实例时,可指定该实例的默认排序规则。每次创建数据库时,可指定用于该数据库的默认排序规则。如果未指定排序规则,数据库的默认排序规则即是实例的默认排序规则。无论何时定义字符列、变量或参数,都可指定这些对象的排序规则。如果未指定排序规则,将使用数据库的默认排序规则创建这些对象。

如果 SQL Server 实例的所有用户都使用同一种语言,则应选择支持该语言的排序规则。例如,若所有用户都讲法语,则选择法语排序规则。

如果 SQL Server 实例的用户使用多种语言,则应选择能对多语种需求提供最佳支持的排序规则。例如,如果用户一般都讲西欧语言,则选择 Latin1_General 排序规则。当支持使用多种语言的用户时,对所有字符数据都使用 Unicode 数据类型 nchar、nvarchar 和 ntext 最为重要。Unicode 旨在消除非 Unicode char、varchar 和 text 数据类型的代码页转换困难。因为排序规则定义用于比较操作的排序次序和 Unicode 字符的排序,所以当用 Unicode 数据类型实现所有的列时,排序规则仍会产生不同。即使当使用 Unicode 数据类型存储字符数据时,也应选择支持大多数用户的排序规则,以防使用非 Unicode 数据类型实现列或变量。

SQL Server 排序规则定义数据库引擎存储和操作字符及 Unicode 数据的方式。然而,当数据移入应用程序后,在应用程序中进行的字符排序和比较将由计算机上选定的 Windows 区域设置控制。应用程序使用的字符数据排序规则是由 Windows 区域设置控制的项目之一,区域设置还定义其它项目,如数字、时间、日期和货币格式。对于 Microsoft Windows NT® 4.0、Microsoft Windows® 98 和 Microsoft Windows 95,可使用控制面板中的"区域设置"应用程序指定 Windows 区域设置。对于 Microsoft Windows 2000,可使用"控制面板"中的"区域选项"应用程序指定区域设置。有关 Windows 区域设置的更多信息,请参见 Microsoft Web 站点 MSDN® 页中的 Developing International Software for Windows 95 and Windows NT 4.0。

多个排序规则可对非 Unicode 数据使用相同的代码页。例如,代码页 1251 定义西里尔语字符集。多个排序规则(如 Cyrillic_General、Ukrainian 和 Macedonian)都使用该代码页。虽然这些排序规则都使用相同的位集来表示非 Unicode 字符数据,但在处理字典定义时所应用的排序和比较规则略有不同,而字典定义确定语言或字母表中与排序规则相关的正确字符序列。

因为 SQL Server 2000 排序规则控制 Unicode 和非 Unicode 排序次序,所以不会遇到由为 Unicode 和非 Unicode 数据指定不同的排序规则而引起的问题。在 SQL Server 的早期版本中,对代码页号、字符排序次序和 Unicode 排序规则分别进行指定。SQL Server 的早期版本还支持每个代码页有不同数目的排序次序,并为某些代码页提供 Windows 区域设置中没有的排序次序。在 SQL Server 7.0 中,还可以指定为非 Unicode 数据选择的排序次序以外的其它 Unicode 排序次序。这会导致在使用与非 Unicode 数据相对的 Unicode 数据时,排序和比较操作返回不同的结果。
另外,虚机团上产品团购,超级便宜

⑤ 更改SQL Server 2012 数据库排序规则

针对市面上有部份应用系统或者ERP系统对于数据库的排序规则是有要求,若安装数据库时没有留意,采用默认安装后,导致应用打开出现异常或者乱码现象。其实不用再卸载重装,通过如下步骤进行更改,节省大量的时间:

1、先停止需要变更 sqlserver 的服务 : 在 运行命令行中 services.msc 命令,在打开的服界面打到并关闭sql server 的服务;(直接通过 Net stop mssqlserver 语句也可以关闭SQL Server 后台服务)

2、执行命令:(cmd命令行)

F:>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /SAPWD=****** /SQLCOLLATION=Chinese_PRC_BIN

参数介绍:

InstanceName : MSSQLSERVER 默认为:MSSQLSERVER

SQLSYSADMINACCOUNTS: administrator 默认为:administrator

StrongPassword : sa账号的密码

CollationName : Chinese_PRC_BIN (根据实际情况需要填写)

F:>setup为安装文件存放路径;

3、等几分钟。出现成功提示

4、执行命令 Net start mssqlserver 启动 SqlServer

5、原有各个数据库会被移出,需要手动进行“附加数据库”数据库操作

⑥ 怎样修改sqlserver2005系统数据库排序规则

首先要知道数据库排序规则的含义,如Chinese_PRC_CI_AS就可以不区分大小写了,下面为Chinese_PRC打头的规则:
_BIN
二进制排序
_CI_AI
不区分大小写、不区分重音、不区分假名类型、不区分全半角
_CI_AI_WS
不区分大小写、不区分重音、不区分假名类型、区分全半角
_CI_AI_KS
不区分大小写、不区分重音、区分假名类型、不区分全半角
_CI_AI_KS_WS
不区分大小写、不区分重音、区分假名类型、区分全半角
_CI_AS
不区分大小写、区分重音、不区分假名类型、不区分全半角
_CI_AS_WS
不区分大小写、区分重音、不区分假名类型、区分全半角
_CI_AS_KS
不区分大小写、区分重音、区分假名类型、不区分全半角
_CI_AS_KS_WS
不区分大小写、区分重音、区分假名类型、区分全半角
_CS_AI
区分大小写、不区分重音、不区分假名类型、不区分全半角
_CS_AI_WS
区分大小写、不区分重音、不区分假名类型、区分全半角
_CS_AI_KS
区分大小写、不区分重音、区分假名类型、不区分全半角
_CS_AI_KS_WS
区分大小写、不区分重音、区分假名类型、区分全半角
_CS_AS
区分大小写、区分重音、不区分假名类型、不区分全半角
_CS_AS_WS
区分大小写、区分重音、不区分假名类型、区分全半角
_CS_AS_KS
区分大小写、区分重音、区分假名类型、不区分全半角
_CS_AS_KS_WS
区分大小写、区分重音、区分假名类型、区分全半角

如需要对数据库重新进行规则设定,具体步骤如下:
1、找到sql2005 的安装包
2、执行下面的批处理,指定某种规则,如Chinese_PRC_CI_AS
内容如下:
cd D:\SQL Server 2005\SQL Server x86\Servers
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=sa SQLCOLLATION=Chinese_PRC_CI_AS
3、重新附加一下数据库就发现排序规则变更了。

⑦ oracle数据库中文怎么排序规则

ORACLE数据库中文排序规则
oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
alter session set nls_sort=’schinese_pinyin_m’;
select * from dept order by nlssort(name,’NLS_SORT=SCHINESE_PINYIN_M’);