クエリで使用される照合を特定の照合にすることで、問題を解決できます。 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
。
基本的に、ここで行われていることは、各データベースに「データの並べ替えルール、大文字と小文字、およびアクセントの感度プロパティを提供する」独自の照合があることです(http://technet.microsoft.com/en-us/library/ms143726.aspxから) )テキストデータ型の列に適用されます 、例: VARCHAR
、CHAR
、NVARCHAR
、など。2つのデータベースの照合が異なる場合、2つの異なる照合間の競合に対処せずに、テキスト列をequals(=)などの演算子と比較することはできません。