SQL 修改排序规则

来源:互联网 发布:蓝格珠宝软件 编辑:程序博客网 时间:2024/05/18 03:26

1.sp_helpsort

select SERVERPROPERTY('Collation')

查看你的排序规则。这个应该和字符集有关

 

2.更改服务器

更改SQL Server 2008实例的默认排序规则

 
确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。


使用工具(例如大容量复制)导出所有数据。


删除所有用户数据库。


重新生成在 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 Server默认排序规则

sp_helpsort SELECT SERVERPROPERTY ('Collation')

 

修改排序规则表

ALTER TABLE tbALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS--不区分大小写

ALTERTABLE tb ALTER COLUMN colnamenvarchar(100) COLLATE Chinese_PRC_CS_AS--区分大小写

数据库

ALTER DATABASEdatabase COLLATE Chinese_PRC_CS_AS--区分大小写

ALTERDATABASE database COLLATE Chinese_PRC_CI_AS--不区分大小写

SQL Server 2005重建master数据库

start /wait setup.exe/qb INSTANCENAME=<实例名> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<密码> SQLCOLLATION=Chinese_PRC_CI_AS

原创粉丝点击