(转)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