equal to 操作での照合順序の競合を解決できません。
sqlserverdで上記のエラーが発生した場合の回避方法
WHERE 項目名 = '値' COLLATE Japanese_CS_AS
条件式の後に上記のうように”COLLATE〜”を追記する
COLLATE の後に入力する値に関しては以下にあげている種類を参考に適切な値を入力してください。
このエラーは照合順序の設定の異なる文字列同士を比較する可能性があります。
照合順序はDB単位だけでなく、テーブル単位、カラム単位で設定することができます。
※照合順序:例えば”青”と”蒼”どちらを先に取得するか(どちらが大きいか?)の並べ替えロジックの定義みたいな決まりです。
この決まりを決めることで取得順序が都度異なるような現象を防ぐことができます。
また、文字列の比較では、 “A”と”a”が同じとするか区別するかを決めることができます。
照合順序の指定書式
●Japanese_BIN,Japanese_BIN2
●Japanese_(CI | CS)_(AI | AS)[(_KS | _WS | _KS_WS)]
説明
BIN バイナリで比較するため、完全一致していない限り、別物として扱う。
CI 大文字と小文字を区別しない。 ”A”=”a”
AI アクセント、濁音、半濁音を区別しない ”は”=”ば”=”ぱ”
AS アクセントを区別する。
KS ひらがなとカタカナを区別する。
WS 半角と全角を区別する。