クライアントとサーバーのコード ページ間のデータ変換の管理

更新 : 2006 年 7 月 17 日

このトピックでは、Unicode データ型を使用してデータベースに文字データを格納できないとき、および文字データと対話するクライアント側のアプリケーションも Unicode に対応していないときに文字データの整合性を保持する方法について説明します。このような状況では、データ ストレージのコード ページとクライアント側のアプリケーションのコード ページを同一にする必要があります。両者のコード ページが異なると、クライアントとサーバー間で行われる変換により、一部の文字が失われる可能性があります。

SQL Server ODBC ドライバの AutoTranslate 機能を無効にして、サーバーのコード ページとは異なるコード ページで定義されたデータを挿入する操作はサポートされていません。また、AutoTranslate が無効になっている場合でも、SQL 言語イベントのコード ページ変換は回避されません。その結果、クライアントとデータベースのコード ページが一致しない場合、サーバーに対して送受信される非 Unicode 文字列全般にコード ページ変換が適用されます。

このような状況は、可能な限り回避してください。特定のコード ページを必要とするサーバーの場合、同じコード ページを使用するクライアントのみと通信することが最善の選択です。次に適切な選択としては、ほとんど同じ文字セットを含む別のコード ページを使用します。たとえば、コード ページ 1252 (ラテン 1) とコード ページ 850 (多言語ラテン 1) ではほとんど同じ文字セットを格納できるので、これら 2 つのコード ページのほとんどの文字は、データを失わずにこれらのコード ページ間で変換できます。

異なるコード ページを使用するクライアントと通信する必要がある場合、Unicode 列にデータを格納するソリューションがサポートされています。上記のどの方法も実現できない場合、他の代替手段として binary データ型、varbinary データ型、または varbinary(max) データ型を使用してバイナリ列にデータを格納します。ただし、バイナリ データはバイナリ順でしか並べ替えや比較を行うことができません。このため、バイナリ データを使用した場合は柔軟性が文字データの場合よりも低くなります。

参照

概念

Unicode を使用するサーバーと Unicode 以外を使用するクライアント間のデータ変換の管理
Unicode エンコード体系間のデータ変換の管理

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • image データ型への参照を varbinary(max) データ型に差し替えました。