[转]SQL SERVER 的排序规则

如何更改SQL SERVER 2000的排序规则

Alter datebase Alter datebase 数据库 Chinese_PRC_BIN

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

使用如下命令,可以获得更多的规则: 
SELECT * 
FROM ::fn_helpcollations()

更改数据库排序规则后,表中字段的排序规则仍然没变,如果在企业管理器中在设计表的界面去一个字段一个字段的改太累人了, 
EXEC sp_configure ‘allow updates‘,1 RECONFIGURE WITH OVERRIDE

update dbo.syscolumns set collationid=65572 where collationid=53284

EXEC sp_configure ‘allow updates‘,0 RECONFIGURE WITH OVERRIDE 
go

修改数据库的排序规则的时候,要确保你的数据库没有任何连接.

最好在查询分析器中用下面的方法,注意修改数据库名:

/* 
关闭用户打开的进程处理 
*/ 
use master 
go

if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[p_killspid]‘) and OBJECTPROPERTY(id, N‘IsProcedure‘) = 1) 
drop procedure [dbo].[p_killspid] 
GO

create proc p_killspid 
@dbname varchar(200) --要关闭进程的数据库名 
as 
declare @sql nvarchar(500) 
declare @spid nvarchar(20)

declare #tb cursor for 
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname) 
open #tb 
fetch next from #tb into @spid 
while @@fetch_status=0 
begin 
exec(‘kill ‘[email protected]) 
fetch next from #tb into @spid 
end 
close #tb 
deallocate #tb 
go

--关闭用户连接 
exec p_killspid ‘数据库名‘ 
go

--修改排序规则 
Alter datebase Alter datebase 数据库名 Chinese_PRC_BIN

时间: 2024-08-07 20:38:29

[转]SQL SERVER 的排序规则的相关文章

SQL SERVER 的排序规则

有时候查询数据库的时候会发现(比如做重名检查的时候):数据库的查询时对大小写不敏感的,也就是 A 和 a 是一样的. 也就是说 select * from tabletest where name = 'a' 和 select * from tabletest where name = 'A' 两条 sql 语句的执行结果是一样的. 该怎么办呢...百度了一下,才了解到这关系到了 SQL SERVER 的排序规则.之前在安装 SQL SERVER 的时候曾经见到过这个选项,但是一直没明白是啥意思

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

SQL Server备份还原后可能遇到排序规则不一致的问题,此时通过统一排序规则可以解决.详细操作如下: 数据库报错信息: 无法解决 equal to 运算中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突. 为解决排序规则冲突,可直接修改对应字段的排序规则,使其一致则可避免查询出错,如下: ALTER TABLE [表名] ALTER COLUMN [字段名] nvarchar(256)

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

不同的排序规则的字段是不能直接比较的.会提示:无法解决 equal to 操作的排序规则冲突.可以把字段强制转换一个排序规则,这样就能比较了.示例: -------------------------------------- SELECT *FROM tab1 a LEFT OUTER JOIN      tab2 u ON a.AdmissionNo = u.UserName COLLATE Chinese_PRC_CI_AS --------------------------------

sql server自定义排序

方法一: 比如需要对SQL表中的字段NAME进行如下的排序:张三(Z)李四(L)王五(W)赵六(Z) 按照sql中的默认排序规则,根据字母顺序(a~z)排,结果为:李四  王五 赵六 张三 自定义排序:order by charindex(NAME,‘张三李四王五赵六’) CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置.CHARINDEX函数调用方法如下:       CHARINDEX ( expression1 , expression2 [ , start_locati

SQL Server之排序函数

Sql Server2005数据库自带一个排序函数ROW_NUMBER(),列表为: 语法:row_number() : over(子句)1.使用row_number()函数进行编号: select row_number() over(order by Sage) id ,* from Student 原理:先按Sage进行排序,排序完后,给每条数据进行编号.注:在使用over等开窗函数时,over里头的分组及排序的执行晚于"where,group by,order by"的执行.结果

修改SQL Service数据库排序规则

修改数据库 alter   database   KidsPang   COLLATE   Chinese_PRC_CI_AS 修改表中字段ALTER TABLE [Member] ALTER COLUMN [ID] [nvarchar](10) COLLATE Chinese_PRC_CI_AS  NOT NULLALTER TABLE [Member] ALTER COLUMN [PASS] [nvarchar](43) COLLATE Chinese_PRC_CI_AS  NOT NULL

SQL 排序规则 CodeProject

http://www.cnblogs.com/ifreesoft/p/4259626.html 开发ERP数据维护工具之一 修改SQL Server数据库排序规则 Change Collation 在部署ERP应用时,经常会碰到在开发环境下,没有问题,部署到服务器上,就出错.不同语言版本的操作系统.不同的数据库版本,等等因素的数据库排序规则的问题.比如在安装SQL Server 时取默认的规则,中文环境下,会设置为Chinese_PRC_CI_AS,但我们需要的规则应该是SQL_Latin1_G

(转)SQL Server 性能调优(cpu)

摘自:http://www.cnblogs.com/Amaranthus/archive/2012/03/07/2383551.html 研究cpu压力工具 perfom SQL跟踪 性能视图 cpu相关的wait event Signal wait time SOS_SCHEDULER_YIELD等待 CXPACKET等待 CMEMTHREAD等待 调度队列 cpu密集型查询 高CPU使用率的创建几种状况 miss index 统计数据丢失 非SARG谓词 隐式类型转化 参数探测器 ad ho

[转载]无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CI_AS_KS_WS" 之间的排序规则冲突

原文链接:http://blog.csdn.net/creathly003/article/details/7331461 一.错误分析: 这个错误是因为排序规则不一致造成的,我们做个测试,比如:create table #t1(name varchar(20) collate Albanian_CI_AI_WS,value int) create table #t2(name varchar(20) collate Chinese_PRC_CI_AI_WS,value int ) 表建好后,执