0

私が長い間直面しているこの問題。異なるデータベースに、同じ列とまったく同じデータ型を持つ 2 つのテーブルがあります。しかし、結合またはその他の一致するクエリを実行すると、結果がほとんど得られないことに気付きました。

LTRIM(RTRIM(UPPER(SourceTable.Column))) =
LTRIM(RTRIM(UPPER(DestinationTable.Column))) 

それは正常に動作します。ビット列と整数列で同じ問題が発生し、LTRIM、RTRIM、および UPPER/LOWER を保持している場合も問題なく動作することに驚いています。

以下は、2 つのデータベースの照合です。

Source: SQL_Latin1_General_CP1_CI_AS
Destination: SQL_Latin1_General_CP1_CI_AS

ご覧のとおり、この問題が発生しているにもかかわらず、照合順序が同じであることがわかります。これに対する恒久的な解決策はありますか?

4

1 に答える 1

0

データ型がまったく同じである場合、実際には列に異なる照合がある可能性があります。実際には、列レベルで指定されたデータベースの照合とは異なる照合を持つことができます。私にとっての最初の寄港地は、それを確認することです。

MSDN リソース、引用:

列レベルの照合

When you create or alter a table, you can specify collations for each 
character-string column by using the COLLATE clause. If no collation is 
specified, the column is assigned the default collation of the database.
于 2013-01-22T11:06:45.443 に答える