淺談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
注:我用的是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
從上面的例子我們可以看到第一句不區分,而第二句區分。可是我們不能每個表都進行一下修改吧?
我們可以再這樣,看下面的例子:
例:
--不區分大小寫
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日晚