SQL 修改排序规则

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 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 Server 2005重建master数据库

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server排序规则是用于指定数据库中字符数据的排序方式。在安装SQL Server数据库时,默认的排序规则是根据系统区域设置自动生成的。例如,在Windows服务器系统区域设置为英语(美国)时,默认安装的排序规则SQL_Latin1_General_CP1_CI_AS。如果需要修改排序规则,可以按照以下步骤进行操作: 1. 修改达式排序规则:在SQL查询时,默认排序规则无法覆盖,但可以在查询达式中指定排序规则进行转换查询。 2. 修改列级排序规则:可以针对特定的列修改排序规则。这可以通过修改列的数据类型或使用ALTER TABLE语句来实现。 3. 修改数据库排序规则:如果需要修改整个数据库排序规则,可以使用ALTER DATABASE语句来更改。在执行ALTER DATABASE之前,需要中断所有对该数据库的访问。 要查看系统中支持的全部排序规则,可以使用以下查询: SELECT * FROM ::fn_helpcollations() 要查看当前系统的排序规则,可以使用以下查询: SELECT SERVERPROPERTY('Collation') 要修改数据库排序规则,可以使用以下语法: ALTER DATABASE 数据库名 COLLATE 排序规则名 例如,要将数据库排序规则修改为区分大小写的简体中文排序规则(Chinese_PRC_CS_AS),可以使用以下语句: ALTER DATABASE test COLLATE Chinese_PRC_CS_AS 请注意,在执行ALTER DATABASE之前,需要中断所有对该数据库的访问。 #### 引用[.reference_title] - *1* *2* [SQL sever 排序规则介绍](https://blog.csdn.net/li_jerry/article/details/124845305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SQL Server 排序规则](https://blog.csdn.net/E_eric/article/details/9260643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值