補助文字

nchar データ型および nvarchar データ型は、1 文字を 16 ビット値として UCS-2 エンコードで格納します。1996 年より前のバージョンの Unicode で定義されたこのエンコードは、U+0000 から U+FFFF までの文字をサポートしています。それよりも新しいバージョンの Unicode では U+10000 から U+10FFFF までの追加の文字が定義されており、これらは補助文字と呼ばれます。これらの文字は、16 ビット値のペア (サロゲート ペア) として UTF-16 エンコードで格納されます。新しい _100 レベルの照合順序はすべて、補助文字の言語の並べ替えをサポートしています。 

補助文字を使用する場合は、次の制限事項を考慮してください。

  • 補助文字は、"90" 以上の照合順序でのみ、順序付けと比較ができます。

  • 補助文字は 2 つの 16 ビット値として格納されるため、LEN() 関数は、引数文字列に格納されている各補助文字に対して値 2 を返します。同様に、CHARINDEX 関数および PATINDEX 関数は、誤って文字列内に補助文字が含まれていると解釈します。

  • LEFT、RIGHT、SUBSTRING、STUFF、および REVERSE の各関数では、サロゲート ペアが分割され、予期しない結果が生じることがあります。

  • 補助文字は、アンダースコア (_)、パーセント (%)、およびキャレット (^) の各ワイルドカード文字と一緒に使用することはできません。

  • 補助文字は、データベース オブジェクトの名前など、メタデータ内で使用することはできません。

このシナリオに関連する Transact-SQL スクリプトについては、補助文字対応文字列操作のサンプルを参照してください。サンプルの詳細については、「SQL Server のサンプルとサンプル データベースのインストールに関する注意点」を参照してください。