補充字元
資料類型 nchar 和 nvarchar 會以稱為 UCS-2 的編碼方式將每個字元儲存為 16 位元值。此編碼方式由 1996 年之前的 Unicode 版本所定義,支援 U+0000 到 U+FFFF 範圍內的字元。新版 Unicode 已定義 U+10000 到 U+10FFFF 範圍內的額外字元,稱為「補充字元」。這些字元以稱為 UTF-16 的編碼方式儲存為 16 位元值組,稱為「Surrogate 字組」。所有新的 _100 層級定序都支援含有補充字元的語言排序。
如果使用補充字元,請考慮下列限制:
補充字元只能用在 90 (含) 以上定序版本的排序及比較作業。
因為補充字元會儲存為兩個 16 位元值,所以 LEN() 函數會對引數字串內含的每一個補充字元傳回值 2。同樣地,函數 CHARINDEX 及 PATINDEX 無法正確地表示字元字串內出現的補充字元。
LEFT、RIGHT、SUBSTRING、STUFF 以及 REVERSE 函數會將 Surrogate 字組拆開,造成無法預期的結果。
不支援補充字元與底線 (_)、百分比 (%) 以及插入號 (^) 萬用字元搭配使用。
不支援在中繼資料內使用補充字元,例如資料庫物件的名稱。
如需與此案例有關的 Transact-SQL 指令碼,請參閱<增補感知的字串操作>範例。如需有關範例的詳細資訊,請參閱<安裝 SQL Server 範例和範例資料庫的考量>。