クエリで使用される照合を特定の照合にすることで、問題を解決できます。 SQL_Latin1_General_CP1_CI_AS またはDATABASE_DEFAULT 。例:
SELECT MyColumn
FROM FirstTable a
INNER JOIN SecondTable b
ON a.MyID COLLATE SQL_Latin1_General_CP1_CI_AS =
b.YourID COLLATE SQL_Latin1_General_CP1_CI_AS
上記のクエリでは、a.MyIDとb.YourIDはテキストベースのデータ型の列になります。 COLLATEの使用 クエリはデータベースのデフォルトの照合を無視し、代わりに提供された照合を使用します。この場合はSQL_Latin1_General_CP1_CI_AS 。
基本的に、ここで行われていることは、各データベースに「データの並べ替えルール、大文字と小文字、およびアクセントの感度プロパティを提供する」独自の照合があることです(https://technet.microsoft.com/en-us/library/ms143726.aspxから) )テキストデータ型の列に適用されます 、例: VARCHAR 、CHAR 、NVARCHAR 、など。2つのデータベースの照合が異なる場合、2つの異なる照合間の競合に対処せずに、テキスト列をequals(=)などの演算子と比較することはできません。