现在的位置: 首页 > 综合 > 正文

MSsql 查询时默认是不区分大小写。 可以用语句强制sql语句查询时区分大小写

2012年08月16日 ⁄ 综合 ⁄ 共 1454字 ⁄ 字号 评论关闭

  select * from a where a.Status='w' collate Chinese_PRC_CS_AI--区分大小写
--select * from a where a='abCdE' collate    Chinese_PRC_CI_AI--不区分大小写

 

 

SQL语句实现:

select * from a where a='AbCdE' collate Chinese_PRC_CS_AI--区分大小写
select * from a where a='abCdE' collate Chinese_PRC_CI_AI--不区分大小写

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

Alter datebase Alter datebase 数据库 Chinese_PRC_BIN

ALTERTABLE tb
ALTERCOLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不区分大小写
ALTERTABLE tb
ALTERCOLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写


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


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

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

EXEC sp_configure 'allow updates',0RECONFIGUREWITH OVERRIDE
go


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

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

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

ifexists (select*from dbo.sysobjects where id =object_id(N'[dbo].[p_killspid]') andOBJECTPROPERTY(id, N'IsProcedure') =1)
dropprocedure[dbo].[p_killspid]
GO

createproc p_killspid
@dbnamevarchar(200) --要关闭进程的数据库名
as
declare@sqlnvarchar(500)
declare@spidnvarchar(20)

declare #tb cursorfor
select spid=cast(spid asvarchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #tb
fetchnextfrom #tb into@spid
while@@fetch_status=0
begin
exec('kill '+@spid)
fetchnextfrom #tb into@spid
end
close #tb
deallocate #tb
go

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

--修改排序规则
Alter datebase Alter datebase 数据库名 Chinese_PRC_BIN
 
 
 
转:http://hi.baidu.com/solorez/blog/item/7d1a2b973fc7a36955fb9631.html

抱歉!评论已关闭.