SQL Server 2017 で導入された日本語照合順序を利用する環境での注意点


*この記事は、SQL Server で日本語の照合順序を利用している方に向けた情報となりますので、日本語でのみ公開しております。

*This article is for the user using japanese collation of SQL Server.Hence we publish the article in japanese only.

 

こんにちは、SQL Server サポートチームです。

 

今回は SQL Server 2017 で導入された以下の日本語照合順序を利用して、リンクサーバーを利用する環境について、ご注意いただきたい内容を紹介します。

 

Japanese_Bushu_Kakusu_140

Japanese_XJIS_140

 

〇発生する現象

これら 2 つの照合順序を利用している環境でリンクサーバーを構成していて、リモート照合順序を使用する設定としている場合、リンク先サーバーの照合順序が実際と異なるものと判定され、エラー 468 が発生することがあります。

 

 

(具体例)

以下のようにリンク元とリンク先が同じ照合順序を利用している場合を想定します。

リンク元サーバーの照合順序:Japanese_XJIS_140_CS_AS_KS_WS_UTF8

リンク先サーバーの照合順序:Japanese_XJIS_140_CS_AS_KS_WS_UTF8

 

また、リンクサーバーの設定で [リモート照合順序を使用] を有効にしていることが前提となります。

(リンクサーバーの設定画面)

 

リンクサーバーを利用するクエリを実行すると以下のようなエラーが発生する場合があります。

 

・エラーメッセージ例

メッセージ 468、レベル 16、状態 9、行 41

equal to 操作の « Japanese_XJIS_140_CS_AS_KS_WS_UTF8 » と « Japanese_XJIS_140_CS_AS_KS_WS_VSS_UTF8 » 間での照合順序の競合を解決できません。

 

 

〇回避策

リンクサーバーの設定で [リモート照合順序を使用] を無効にすることでエラー 468 は発生しなくなります。

 

または、バリエーションの選択を区別する照合順序(上記の例では « Japanese_XJIS_140_CS_AS_KS_WS_VSS_UTF8″)を利用することでもエラーは発生しません。

 

 

(参考情報)

バリエーションの選択を区別する照合順序については以下の情報も参考にしてください。

 

https://learn.microsoft.com/ja-jp/sql/relational-databases/collations/collation-and-unicode-support?view=azuresqldb-current

 

以上です。