1、修改SQL Server服务器(实例)的排序规则sql
如下实验使用了SQL Server 2008 R2的默认实例,将Chinese_PRC_CI_AS修改为SQL_Latin1_General_CP1_CI_AS。数据库
1. 中止SQL Server实例服务服务器
2. 打开“命令提示符”,转到SQL Server的安装目录ide
C:\Users\Administrator> cd "\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2" |
3. 运行setupsqlserver
C:\Program FIles\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2> setup /QUIET /ACTION=REBUILDDATABASE /instancename=mssqlserver /SQLSYSADMINACCOUNTS=administrator /sqlcollation=SQL_Latin1_General_CP1_CI_AS |
4. 启动SQL Server实例服务spa
5. 验证明例的排序规则3d
6. 验证系统数据库(master、model、msdb、tempdb)的排序规则server
说明:此操做仅影响系统数据库。对于已经存在的用户数据库无效。对象
2、修改数据库的排序规则blog
如下实验将修改数据库db01的排序规则,将SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。
1. SSMS图形界面
2. 脚本
ALTER DATABASE [db01] COLLATE Chinese_PRC_CI_AS |
3. 局限性
(1)对于已经存在的数据,此操做并不会致使当即从新排序。
(2)若是已经有对象依赖于数据库排序规则,则更改不成功。
3、修改表的排序规则
表的排序规则依赖于数据库的排序规则。不能修改。
4、修改列的排序规则
建议:将这个表的数据保存到另外一个临时表,重建这个表,而后从临时表将数据导入到新表。
能够经过SSMS修改某一列的排序规则,可是,这项操做实际上仍是删除这个表以及相关的约束、触发器,而后重建这个表、约束、索引、触发器。
ALTER TABLE dbo.EmpBasic DROP CONSTRAINT DF__EmpBasic__FirstN__2319CD4B TABLOCKX)')
DROP TABLE dbo.EmpBasic CREATE UNIQUE CLUSTERED INDEX EmpID ON dbo.EmpBasic ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY] ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY]create trigger _ti_EmpBasic ON dbo.EmpBasic for insert asbegin......end |