更新: 2006 年 12 月 12 日
SQL Server 2005 使用 UCS-2 編碼配置,以二進位格式來編碼 Unicode 字元。有些語言 (例如中文) 則會定義其他不常使用且未包含在 Unicode 標準中的字元。UCS-2 會將這些字元 (補充字元) 儲存為兩個未定義的 Unicode 字元,當它們成對出現時,便能在儲存時定義補充字元。SQL Server 以此方式儲存補充字元,不會有遺失或損毀的風險。此外,在 SQL Server 2005 中,您也可以在任何以 SQL Server 為基礎的應用程式中使用並顯示補充字元,包括工具型應用程式,例如 Business Intelligence。
當您使用 Windows Vista 或 Microsoft Office 2007 的 Microsoft IME (輸入法) 時,補充字元會以 UCS 字碼指標 U+10000 或更高的指標來代表。
使用補充字元時,請考慮下列限制:
- 補充字元只能用在 90 定序版本的排序及比較作業。這些比較作業只依據字碼指標,而不會依據其他在語言方面有意義的方式進行。當您在 ORDER BY、GROUP BY 以及 DISTINCT 作業中使用補充字元時請特別注意這一點,尤其當同一項作業中同時含有補充字元及非補充字元時,更要留意。90 定序版本是指在名稱後面加上 90 後置詞。例如,不使用日文定序,改用 Japanese_90。如需詳細資訊,請參閱<安裝程式中的定序設定>。
- 因為補充字元會成對儲存為兩個雙位元組字元,所以 LEN() 函數會對引數字串內含的每一個補充字元傳回值 2。同樣地,函數 CHARINDEX 及 PATINDEX 無法正確地表示字元字串內出現的補充字元,而 NCHAR 函數只會傳回一個字元,只表示了補充字元組的一半。將 binary 或 varbinary 值轉換為補充字元,也只會產生補充字元組的一半。
- LEFT、RIGHT、SUBSTRING、STUFF 以及 REVERSE 函數會將補充字元組拆開,造成無法預期的結果。
- 不支援補充字元與底線 (_)、空格 ( ) 以及插入號 (^) 萬用字元搭配使用。
- 不支援在中繼資料使用補充字元,例如資料庫物件的名稱。
- 因為其獨特的儲存機制,所以在伺服器及資料庫升級作業期間,如果出現補充字元可能會消耗多餘的資源。
SQL Server 2005 提供一個範例,顯示 Common Language Runtime (CLR) 函數內能夠識別補充字元的字串處理。如需詳細資訊,請參閱<增補感知的字串操作>。
請參閱
概念
說明及資訊
變更歷程記錄
| 版本 | 歷程記錄 |
|---|---|
2006 年 12 月 12 日 |
|