转自http://jimshu.blog.51cto.com/3171847/1095780/

一、修改SQL Server服务器(实例)的排序规则

  以下实验使用了SQL Server 2008 R2的默认实例,将Chinese_PRC_CI_AS修改成SQL_Latin1_General_CP1_CI_AS。

1. 停止SQL Server实例服务

2. 打开“命令提示符”,转到SQL Server的安装目录

C:\Users\Administrator> cd "\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2"

3. 运行setup

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实例服务

 

5. 验证实例的排序规则

6. 验证系统数据库(master、model、msdb、tempdb)的排序规则

说明:此操作仅影响系统数据库。对于已经存在的用户数据库无效。

二、修改数据库的排序规则

  以下实验将修改数据库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)如果已经有对象依赖于数据库排序规则,则更改不成功。

三、修改表的排序规则

  表的排序规则依赖于数据库的排序规则。不能修改。

四、修改列的排序规则

  建议:将这个表的数据保存到另一个临时表,重建这个表,然后从临时表将数据导入到新表。

  可以通过SSMS修改某一列的排序规则,但是,这项操作实际上还是删除这个表以及相关的约束、触发器,然后重建这个表、约束、索引、触发器。

ALTER TABLE dbo.EmpBasic DROP CONSTRAINT DF__EmpBasic__FirstN__2319CD4B
ALTER TABLE dbo.EmpBasic DROP CONSTRAINT ......

CREATE TABLE dbo.Tmp_EmpBasic ( ......
FirstName nvarchar(30) COLLATE Chinese_PRC_CI_AS NULL,
...... ) ON [PRIMARY]

ALTER TABLE dbo.Tmp_EmpBasic SET (LOCK_ESCALATION = TABLE)
GRANT DELETE ON dbo.Tmp_EmpBasic TO public AS dbo
GRANT INSERT ON dbo.Tmp_EmpBasic TO public AS dbo
GRANT SELECT ON dbo.Tmp_EmpBasic TO public AS dbo
GRANT UPDATE ON dbo.Tmp_EmpBasic TO public AS dbo

ALTER TABLE dbo.Tmp_EmpBasic ADD CONSTRAINT DF__EmpBasic__FirstN__2319CD4B DEFAULT ('') FOR FirstName
ALTER TABLE dbo.Tmp_EmpBasic ADD CONSTRAINT DF__EmpBasic__Middle__240DF184 ......

SET IDENTITY_INSERT dbo.Tmp_EmpBasic ON

IF EXISTS(SELECT * FROM dbo.EmpBasic)
EXEC('INSERT INTO dbo.Tmp_EmpBasic (Company, EmpID, FirstName,......)
SELECT Company, EmpID, FirstName, ...... FROM dbo.EmpBasic WITH (HOLDLOCK

TABLOCKX)')

SET IDENTITY_INSERT dbo.Tmp_EmpBasic OFF

DROP TABLE dbo.EmpBasic
EXECUTE sp_rename N'dbo.Tmp_EmpBasic', N'EmpBasic', 'OBJECT'

CREATE UNIQUE CLUSTERED INDEX EmpID ON dbo.EmpBasic
(Company, EmpID ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,

ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY]

CREATE NONCLUSTERED INDEX FirstName ON dbo.EmpBasic
( Company, FirstName, LastName ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,

ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY]

create trigger _ti_EmpBasic ON dbo.EmpBasic for insert as
begin
......
end

修改SQL Server 的排序规则(转)的更多相关文章

  1. 全库修改SQL Server现有排序规则

    近日,在项目Debug过程中发现了SQL Server排序规则冲突的问题. 由于原数据库是从英文环境的SQL中生成的,其排序规则为“SQL_Latin1_General_CP1_CI_AS”,备份到本 ...

  2. SQL SERVER 的排序规则

    有时候查询数据库的时候会发现(比如做重名检查的时候):数据库的查询时对大小写不敏感的,也就是 A 和 a 是一样的. 也就是说 select * from tabletest where name = ...

  3. SQL Server更改排序规则的实现过程

    摘自: http://www.2cto.com/database/201112/115138.html 以下的文章主要向大家描述的是SQL Server更改排序规则的实现过程,以及在实现其实际操作过程 ...

  4. [转]SQL SERVER 的排序规则

    如何更改SQL SERVER 2000的排序规则 -- 增加复合主键语句 Alter Table tableName Add primary key (field1,field2) Alter dat ...

  5. sql server不同排序规则的数据库间字段的比较

    不同的排序规则的字段是不能直接比较的.会提示:无法解决 equal to 操作的排序规则冲突.可以把字段强制转换一个排序规则,这样就能比较了.示例: ------------------------- ...

  6. SQL SERVER 强制排序规则查询

    有时会需要在2个DB之间的数据做比较, 但因为一些原因, 数据库的默认排序规则是不一样的, 例如 SELECT A.Col1, B.Col1, A.* FROM DB1.dbo.A LEFT JOIN ...

  7. 修改SQL Service数据库排序规则

    修改数据库 alter   database   KidsPang   COLLATE   Chinese_PRC_CI_AS 修改表中字段ALTER TABLE [Member] ALTER COL ...

  8. 利用脚本修改SQL SERVER排序规则

    利用脚本修改SQL SERVER排序规则 编写人:CC阿爸 2014-3-1 l  今年的一项重要工作是对公司所用系统进行繁简的转换,程序转成简体基本很容易解决,但数据库转换成简体,就没那么容易了.经 ...

  9. 修改sql server实例、数据库、表、字段的排序规则

    转自:http://blog.51cto.com/jimshu/1095780 概念与详情请参考:字符编码与排序规则:https://www.cnblogs.com/gered/p/9145123.h ...

随机推荐

  1. 2-1 nodejs和npm的安装和环境搭建

    1.安装node.js (最新已经集成npm)  https://nodejs.org/en/ 2.升级npm $ npm install -g npm $ cnpm install -g cnpm ...

  2. 基于spring-cloud的微服务(1) 服务注册中心eureka

    eureka是Netflix提供的服务注册中心组建,springcloud将其做了封装,作为自己的微服务架构中的一个注册中心组建 下面的例子在IDEA中启动一个eureka的实例,然后提供一个prov ...

  3. where are you from

    where are you from 如果问美国人这句话的话,他们一般会说: I'm from California. I'm from Pennsylvanian. 一般是说州,而不是说Americ ...

  4. OC开发_整理笔记——多线程之GCD

    一.进程和线程   二.各种队列! 1.GCD:Grand Central Dispatch 2.串行队列(Serial)      你可以创建任意个数的串行队列,每个队列依次执行添加的任务,一个队列 ...

  5. php中调用这个功能可以在web页面中显示hello world这个经典单词

    php程序写的时间长了,自然对他所提供的功能了如指掌,他所提供的一大堆功能,真是觉得很好用,但有时候会发现php也缺少一些功能,自己总是会产生为php添加一些自定义的功能的想法.久而久之,终于今天憋不 ...

  6. PHP 学习笔记之一:thinkPHP的volist标签

    Volist标签主要用于在模板中循环输出数据集或者多维数组. 属性: name : 必须,输出数据模板变量,后台提供的变量. id : 必须,是循环变量,可以随便定义,但是不能跟name相同. 举个栗 ...

  7. TOP100summit 2017:亚马逊Echo音箱能够语音识人,华人工程师揭秘设计原理

      本文编辑:Cynthia 2017年,人工智能的消费产品落地聚焦在了智能音箱上,谷歌.亚马逊纷纷推出智能音箱产品,国内的阿里巴巴推出天猫精灵,小米推出小米AI音箱.智能音箱通过语音可以发出指令,未 ...

  8. HDU 2602 - Bone Collector - [01背包模板题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Many years ago , in Teddy’s hometown there was a ...

  9. Spark Streaming 在数据平台日志解析功能的应用

    https://mp.weixin.qq.com/s/bGXhC9hvDj4lzK7wYYHGDg 目前,我们使用Filebeat监控日志产生的目录,收集产生的日志,打到logstash集群,接入ka ...

  10. 洛谷P4035 球形空间产生器 [JSOI2008] 高斯消元

    正解:高斯消元 解题报告: 链接! 昂开始看到以为是,高斯消元板子题? 开始很容易想到的是,虽然是多维但是可以类比二维三维列出式子嘛 但是高斯消元是只能处理一元问题的啊,,,辣怎么处理呢 对的这就是这 ...