Posted on 2007-08-04 08:59
semovy 閱讀(403)
評論(0) 編輯 收藏 所屬分類:
數(shù)據(jù)庫方面 、
MS SQLServer方面
我們在create table時經(jīng)常會碰到這樣的語句,例如:CityName nvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面:
首先,collate是一個子句,可應(yīng)用于數(shù)據(jù)庫定義或列定義以定義排序規(guī)則,或應(yīng)用于字符串表達(dá)式以應(yīng)用排序規(guī)則投影。
語法是collate collation_name
collation_name ::={windows_collation_name}|{sql_collation_name}
參數(shù)collate_name是應(yīng)用于表達(dá)式、列定義或數(shù)據(jù)庫定義的排序規(guī)則的名稱。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。
Windows_collation_name 是 Windows 排序規(guī)則的排序規(guī)則名稱。參見 Windows 排序規(guī)則名稱。
SQL_collation_name 是 SQL 排序規(guī)則的排序規(guī)則名稱。參見 SQL 排序規(guī)則名稱。
下面簡單介紹一下排序規(guī)則:
什么叫排序規(guī)則呢?MS是這樣描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存儲由排序規(guī)則控制。排序規(guī)則指定表示每個字符的位模式以及存
儲和比較字符所使用的規(guī)則。"
在查詢分析器內(nèi)執(zhí)行下面語句,可以得到SQL SERVER支持的所有排序規(guī)則。
select * from ::fn_helpcollations()
排序規(guī)則名稱由兩部份構(gòu)成,前半部份是指本排序規(guī)則所支持的字符集。
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指針對大陸簡體字UNICODE的排序規(guī)則。
排序規(guī)則的后半部份即后綴 含義:
_BIN 二進(jìn)制排序
_CI(CS) 是否區(qū)分大小寫,CI不區(qū)分,CS區(qū)分
_AI(AS) 是否區(qū)分重音,AI不區(qū)分,AS區(qū)分
_KI(KS) 是否區(qū)分假名類型,KI不區(qū)分,KS區(qū)分
_WI(WS) 是否區(qū)分寬度 WI不區(qū)分,WS區(qū)分
區(qū)分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。
區(qū)分重音:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,
比較還將重音不同的字母視為不等。
區(qū)分假名:如果想讓比較將片假名和平假名日語音節(jié)視為不等,請選擇該選項。
區(qū)分寬度:如果想讓比較將半角字符和全角字符視為不等,請選擇該選項