2

tempdb の照合順序はLatin1_General_100_CI_AI. データベースの照合もLatin1_General_100_CI_AI。しかし、次の SQL ステートメント:

SELECT *
FROM ##CitiesMapping AS cm
INNER JOIN Cities ON cm.CityName=Cities.Name

戻り値:

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_100_CI_AI" in the equal to operation.

サーバーのデフォルトの照合もLatin1_General_100_CI_AI

4

2 に答える 2

3

単一の列に対して異なる照合順序が設定されている可能性があります。Stuart からのクエリがそれを示します。それらが異なる照合である場合、次のように比較のどちらかの側で使用される照合を指定できます。

SELECT *
  FROM ##CitiesMapping AS cm
 INNER JOIN Cities 
    ON cm.CityName COLLATE DATABASE_DEFAULT = Cities.Name COLLATE DATABASE_DEFAULT;

これがお役に立てば幸いです。

于 2013-07-21T17:13:51.440 に答える