私は SSIS パッケージに取り組んでおり、更新機能 (ステージング テーブルを使用して行を更新する) を追加しています。これを行うには、ルックアップと条件付き分割を使用して、すべての列を比較します。
何らかの理由で、一部のデータは誤検知をスローし、行が変更されていないのに変更済みとしてマークされます。これを単一の文字列列 (郵便番号) に分離しました。
列はルックアップから直接取得されます。ソース データ列はvarchar(9)
、宛先 (つまり、2 番目の値のソース) はchar(9)
です。SSIS では、両方の列がDT_STR,9,1252
空のテーブルから始めて、パッケージを 2 回実行すると、2 回目は行の約 20% が変更されていないにもかかわらず、変更されたものとして表示されます。次の SQL は、既存の行をステージング テーブルの「更新された」行に結合し、それらの zip を比較します。
SELECT a.key_DestinationZip, b.key_DestinationZip,
CASE WHEN a.key_DestinationZip = b.key_DestinationZip then 1 else 0 end
FROM [dbo].[sta_Sales] as a
join [dbo].[fact_Sales] as b
on a.key_FullSalesNumber = b.key_FullSalesNumber
と同様の結果が得られます
78735 78735 1
38138 38138 1