このクエリは2つのデータベースのテーブルを使用するため、データベース間の照合の問題を回避するために照合ヒントを指定する必要がある以下のクエリを使用しています。
メッセージ468、レベル16、状態9、行12「Latin1_General_CS_AI」と「Latin1_General_CS_AS」の間の照合の競合をequal操作で解決できません。
現在、異なる照合で異なるデータベースを使用するクエリのいくつかを実行すると、照合の競合について上記のエラーが発生します。
Delete from table1 where oldcolumn in
(
select newcolumn from Database2.dbo.table2
where invoiceid = @invno
and complete = 0
)
以下のように照合ヒントを含めるようにクエリを変更しました。
Delete from table1 where oldcolumn COLLATE SQL_Latin1_General_CP1_CS_AS in
(
select newcolumn from Database2.dbo.table2
where invoiceid = @invno
and complete = 0
)
- 上記のクエリは照合の問題を解決しますか?
- 演算子の左側または右側に照合ヒントを指定するのは同じですか(例: "="演算子)?
- これまでのようにクエリを
invoiceid = @invno
実行すると、ランタイム照合の競合エラーが発生しますか?
注:上記の2つのデータベースのいずれにもアクセスできず、スクリプトは実際のデータベースで実行されるため、この質問をしています。