2

2 つのサーバーがSQL_Latin1_General_CP1_CI_ASLatin1_General_CI_ASを使用してセットアップされていることに気付きました。

2 つのデータ ソースを相互に比較するスクリプトを作成しました (これは単純な SELECT ステートメントであるため、含めていません。同じ列を使用しますが、異なるソースからのものです)。エラー。

メッセージ 468、レベル 16、状態 9、行 2 UNION 操作での" SQL_Latin1_General_CP1_CI_AS " と " Latin1_General_CI_AS " の間の照合の競合を解決できません。

ソースの 1 つは、SSISパッケージによって設定されているテーブルです。宛先テーブルに送信される前に、SSIS プロジェクトを "SQL_Latin1_General_CP1_CI_AS" 形式から "Latin1_General_CI_AS" に変換する方法はありますか?

ありがとう!

4

2 に答える 2

1

COLLATE Latin1_General_CI_ASこのようにSQL_Latin1_General_CP1_CI_ASを使用するテーブルの各列の後に文を使用できます。

SELECT COLUMN_A COLLATE Latin1_General_CI_AS AS COL1 
FROM TABLE
于 2012-11-01T16:56:01.760 に答える
0

エラー メッセージは、UNION が単一の SQL ステートメントにあるように見えますか? 例: SELECT ... UNION ... SELECT

Shiva が説明したように、SSIS データ フロー内で、2 つ (またはそれ以上) の OLE DB ソース オブジェクトを使用し、それらを "Union All" 変換と組み合わせることができます。各 OLE DB ソース オブジェクトには、UNION 句のない 1 つの SELECT のみが含まれます。この設計には、設計/保守 (列名の結合、すべてのソースからすべての列を埋める必要がない) および実行時のスループットにも利点があります。

OLE DB ソース オブジェクトでもこの手法を使用する必要があると思います。 http://blog.stevienova.com/2009/04/16/ssis-pulling-data-from-a-non-default-collat​​ion-db-to-a-default-collat​​ion-db/

于 2012-11-05T04:06:33.303 に答える