修改sql server实例、数据库、表、字段的排序规则
转自:http://blog.51cto.com/jimshu/1095780
概念与详情请参考:字符编码与排序规则:https://www.cnblogs.com/gered/p/9145123.html
一、修改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 CREATE TABLE dbo.Tmp_EmpBasic ( ...... ALTER TABLE dbo.Tmp_EmpBasic SET (LOCK_ESCALATION = TABLE) ALTER TABLE dbo.Tmp_EmpBasic ADD CONSTRAINT DF__EmpBasic__FirstN__2319CD4B DEFAULT ('') FOR FirstName SET IDENTITY_INSERT dbo.Tmp_EmpBasic ON IF EXISTS(SELECT * FROM dbo.EmpBasic) TABLOCKX)') SET IDENTITY_INSERT dbo.Tmp_EmpBasic OFF DROP TABLE dbo.EmpBasic CREATE UNIQUE CLUSTERED INDEX EmpID ON dbo.EmpBasic ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY] CREATE NONCLUSTERED INDEX FirstName ON dbo.EmpBasic ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY] create trigger _ti_EmpBasic ON dbo.EmpBasic for insert as |
修改sql server实例、数据库、表、字段的排序规则的更多相关文章
- 如何修改SQL Server 2008数据库服务器名称
在做数据库发布订阅的时候我们经常要碰到要使用服务器名称来进行. 那么我们经常会碰到的问题是,现在开始大量的使用云服,我们只需要一台服务器搭建好环境,做一个备份镜像,还原到其他的服务器上就可以了,但是问 ...
- 修改SQL Server 2005 数据库文件名字
对于SQLServer 2005的数据库文件名字的修改.不多说,见图: 对于数据库名的更改直接选中要修改的数据库,F2,你懂的,不懂的可以去屎了.....0.0 下面要修改数据库的文件名 原理就是利用 ...
- linux / centos 安装SQL Server 2017 设置默认语言与排序规则Chinese_PRC_CI_AS
安装 安装很简单参照官方教程 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sq ...
- SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等
)-- 表名 set @table_name='bqcform101' --============表结构 select 类别,表名or字段名,描述,字段类型,是否自增,允许为NULL,默认值 fro ...
- Sql Server 导出数据库表结构的SQL查询语句
--导出数据库所有表 SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.colo ...
- sql server 清空数据库表数据
--禁用外键约束 exec sp_msforeachtable 'alter table ? nocheck constraint all ' --清空数据 truncat ...
- SQL Server 查询数据库表的列数
select count(*) from sysobjects a join syscolumns b on a.id=b.id where a.name='表名' go
- 修改SQL Server数据库表的创建时间最简单最直接有效的方法
说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一 ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
随机推荐
- layui当点击增加的时候,将form中的值获取的添加到table行中代码
layui.use(['table','layer'],function(){ var $=layui.$, table=layui.table, layer=layui.layer; functio ...
- PLS-00157: AUTHID only allowed on schema-level programs解决办法 包体的过程使用调用者权限方法
在包体里写了一个过程,test执行时报错,但是如果把该过程单独拿出来创建一个,就能顺利执行. 在没加上调用者权 authid current_user之前,报错如下 ORA-01031: insuf ...
- android6.0 adbd深入分析(二)adb驱动数据的处理、写数据到adb驱动节点
上篇博客最后讲到在output_thread中.读取了adb驱动的数据后.就调用write_packet(t->fd, t->serial, &p)函数,把数据网socket ...
- 使用Data URL将图片嵌入到网页中
早些时候,使用IE6浏览器,网页可以另存为mht,如果网页包含图片,那么图片也会存储到mht中. mht是微软提供的一种聚合HTML文档,它的本质其实是一个文本文件,那么我们也许会好奇,它的图片存储到 ...
- mybatis慢查询配置
<?xml version="1.0" encoding="UTF-8"?> <!--suppress SpringFacetInspecti ...
- BootStrap带样式打印
在新窗口打印时bootstrap表格的样式出不来,因为打印时没有加载CSS样式. 我在jquery.PrintArea.js的基础上改造了下打印的方法: (function ($) { var pri ...
- 【watcher】 #02 c# 中实现时间戳等,日期数字及大概率绝对随机数 实现
在Wacher的项目中,用到了很多时间记录的地方,为了将来能够和在线数据打通,我们使用了时间戳来记录时间信息 由于c# 没有现成的方法,所以我们重新写了一个Helper类来帮助我们使用这些公共函数 同 ...
- 拦截器(Inteceptor),过滤器(Filter),切面(Aspect)处理HttpServiceReqeust请求
1.拦截器 java里的拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可 ...
- PhoneGap 第一个程序
首先,现在PhoneGap ZIP包. index.html <!DOCTYPE HTML lang="zh-CN"> <html> <head&g ...
- 《转》适用于开发人员的10个最佳ASP.NET的CMS系统
1) mojoportal mojoPortal 是一个开源的.用 C# 编写的站点框架和内容管理系统,可以运行在 Windows 中的 ASP.NET 和 Linux/Mac OS X 中的 Mon ...