0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

オンプレミス環境とAzure環境で日本語文字列が同じ順番に並ばない時

Posted at

【記載理由】

オンプレミス環境とAzure環境のSQLServerManagementStudioで扱うデータを bcpコマンド(csvファイルを出力するコマンド)でデータを吐き出す際に 日本語文字列のカラム(項目)でデータが同じ順番に並ばず出力され、 データの一致が確認できない事例が私のタスクの中で起きました。 その解決策を共有したいと思います。

●BCPコマンドの参考リンク
参考:https://docs.microsoft.com/ja-jp/sql/tools/bcp-utility?view=sql-server-ver15

【問題点】

今回タスクとして使用した環境はオンプレミスとAzureの2環境。 環境構築を統一して行っていなかった為、以下のような差異があります。

SQLServerManagementStudioのデータベースのプロパティ

●照合順序
・オンプレミス環境の照合順序が「Japanese_CI_AS」
・Azure環境の照合順序が「SQL_Latin1_General_CP1_CI_AS」

と設定されていました。

現在のプロジェクトの状況から初期段階で設定した照合順序を変更するのは、
影響範囲等を考えたりする為、工数がかかると判断が下り、
照合順序の設定を変更することができませんでした。

照合順序の設定変更が不可能。では、どうしましょう?

そこで使用したのが、
「COLLATE Japanese_CI_AS」
公式としては
COLLATE [照合順序を設定するキーワード]

COLLATEの使用可能な箇所は
where句、SELECT句の列ごと等に指定することが可能です。

指定するとその指定したものに対しての照合順序がCOLLATEで
設定した順序になります。

参考にリンク⇐クリックしてください

ご覧に頂きありがとうございました。 以上です。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?