(转)MSSQL数据库排序规则更改

1.sp_helpsort 
SELECT SERVERPROPERTY ('Collation') 
查看你的排序规则. 
不过你的这个应该和字符集有关. 

2.更改服务器排序规则 

修改SQL server 2008服务器排序规则
 
  SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL Server。
  假设当前默认实例的服务器排序规则是:Chinese_PRC_CI_AS,要修改成SQL_Latin1_General_CP1_CI_AS
  步骤:
  在CMD模式
  1、 进入SQL Server 安装文件所在目录(setup.exe文件所在目录)
  2、 运行命令:Net stop mssqlserver
  3、 Setup /QUIET /ACTION=REBUILDDATABASE /instancename=mssqlserver /SQLSYSADMINACCOUNTS=administrator /sapwd=XXXXXX /sqlcollation=Chinese_PRC_CI_AS 
  (sapwd是指sa 的密码)
  命令格式是:Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName 
  /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ] 
  /SQLCOLLATION=CollationName
  )
  4、 Net start mssqlserver

注意: 
可以为创建的每个新数据库指定默认排序规则,而不更改 SQL Server 2005 实例的默认排序规则

SQL code : 
1.将数据库的字符集修改为: 

alter database dbname collate Chinese_PRC_CI_AS 

2. 
--1. 为数据库指定排序规则 

CREATE DATABASE db COLLATE Chinese_PRC_CI_AS 
GO 
ALTER DATABASE db COLLATE Chinese_PRC_BIN 
GO 

--2. 为表中的列指定排序规则 

CREATE TABLE tb( 
col1 varchar(10), 
col2 varchar(10) COLLATE Chinese_PRC_CI_AS) 
GO 
ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN 
GO 
ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN 
GO 

--3. 为字符变量和参数应用排序规则

DECLARE @a varchar(10),@b varchar(10) 
SELECT @a='a',@b='A' 
--使用排序规则 Chinese_PRC_CI_AS 
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a<>@b' END 
--结果:@a=@b 
--使用排序规则 Chinese_PRC_BIN 
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a<>@b' END 
--结果:@a<>@b 

3. 

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 --不区分大小写 

 

转自:

http://www.cnblogs.com/qanholas/archive/2012/10/24/2736654.html#2802596

http://www.jb51.net/article/32238.htm

posted on 2014-06-10 10:50  啵啵猪  阅读(576)  评论(0编辑  收藏  举报

导航