顧客からデータ フィードを受け取り、毎回ほぼ同じスキーマを取得しますが、顧客がサード パーティのアプリケーションを使用しているため、顧客側で変更される可能性があります。データ ファイルを受け取ると、各データ ファイル (学生、出席者など) のテーブルを含むステージング データベースにデータをインポートします。次に、そのデータをその顧客のデータベースに既に存在するデータと比較し、前回の実行から変更されたデータ (列が変更されたか、行全体が削除された可能性がある) を確認します。次に、更新された値または削除された行を監査テーブルに書き込み、前のデータ インポートから変更されたデータを確認できるようにします。データ自体を更新したくはありません。2 つのデータセットの違いを記録したいだけです。その後、顧客データベースからすべてのデータを削除し、変更せずに新しいデータ ファイルからデータをそのままインポートします (この指示は継承されており、変更できません)。大きな問題は、これを動的に行う必要があることです。顧客はテーブルをカスタマイズできるため、顧客から取得するスキーマが正確にはわからないからです。宛先にあるテーブルとその構造を動的に判断し、ソースを見て値を比較して、データの変更点を確認できる必要があります。お客様はテーブルをカスタマイズできるため、お客様からの情報を得ることができます。宛先にあるテーブルとその構造を動的に判断し、ソースを見て値を比較して、データの変更点を確認できる必要があります。お客様はテーブルをカスタマイズできるため、お客様からの情報を得ることができます。宛先にあるテーブルとその構造を動的に判断し、ソースを見て値を比較して、データの変更点を確認できる必要があります。
追加情報: ソースには ID 列はありませんが、個別の行を構成する代理キーとして使用できる列がいくつかあります。
別の参照テーブルの各テーブルの代理キーに対してそれを行う必要があるかもしれませんが、値をハードコーディングすることなく、テーブルごとにこれを一般的に実行できるようにしたいと考えています。
SSIS、SP、トリガーなど、より意味のある方を使用できます。私は tablediff を含め、すべてを見てきましたが、必要なものがすべて揃っているようには見えません。または、それらに入るとロジックが非常に複雑になり始めます。
もちろん、誰かがすでに行ったこのようなことの具体的な例は大歓迎です。
他に役立つ情報があれば教えてください。
ありがとう