浅谈SQL语句大小写是否区分的问题--【叶子】

一、实例介绍

SQL语句大小写到底是否区分呢?我们先从下面的这个例子来看一下:

例:

--> 创建表,插入数据:

declare @maco table (number int,myvalue varchar(2))

insert into @maco select 1,'aa' union all

select 2,'Aa' union all

select 3,'aA' union all

select 4,'AA'

--不区分大小写

select * from @maco WHERE nn='aa'

--区分大小写

select * from @maco WHERE nn='aa' collate Chinese_PRC_CS_AI

注:我用的是Sql Server 2005

从上面的例子我们可以看到第一句不区分,而第二句区分。可是每个语句不能都加上个collate Chinese_PRC_CS_AI吧?

我们可以这样,看下面的例子:

例:

--不区分大小写

ALTER TABLE My_table ALTER Column colname nvarchar(100) collate Chinese_PRC_CI_AS

--区分大小写

ALTER TABLE My_table ALTER Column colname nvarchar(100) collate Chinese_PRC_CS_AS

从上面的例子我们可以看到第一句不区分,而第二句区分。可是我们不能每个表都进行一下修改吧?

我们可以再这样,看下面的例子:

例:

--不区分大小写

ALTER DATABASE databasename collate Chinese_PRC_CI_AS

--区分大小写

ALTER DATABASE databasename collate Chinese_PRC_CS_AS

二、参数介绍

Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

排序规则的后半部份(即后缀)含义:

_BIN 二进制排序_CI(CS) 是否区分大小写:CI不区分,CS区分

_AI(AS) 是否区分重音:AI不区分,AS区分   

_KI(KS) 是否区分假名类型:KI不区分,KS区分 

_WI(WS) 是否区分宽度:WI不区分,WS区分

三、整体介绍

在安装SQL时,我们可以选择区分大小写或安装完以后重建mastar,再选择区分大小

下面是rebuildm.exe 的路径:

C:/Program Files/Microsoft SQL Server/80/Tools/Binn/rebuildm.exe

若要修改排序规则,按照上面的参数设置即可。

若只修改一个表,用ALTER TABLE语句

若修改一个库的默认排序规则,用ALTER DATABASE语句

若修改整个服务器的默认排序规则,用Rebuildm.exe重建master

后记:第一次写这种东西,也不知道是非介绍的清楚,有不准确,不清楚的地方,还望见谅!

© 【叶子】http://blog.csdn.net/maco_wang 原创作品,转贴请注明作者和出处,留此信息。

------叶子,2008年5月27日晚

阅读更多

没有更多推荐了,返回首页