お客様からのデータフィードを受け取り、サードパーティのアプリケーションを使用しているときに顧客側で変更することができますが、毎回ほぼ同じスキーマを取得します。データファイルを受け取ると、各データファイル(生徒、出席者など)のテーブルを使用してステージングデータベースにデータをインポートします。そのデータを、その顧客のデータベースに既に存在するデータと比較して、以前の実行から変更されたデータ(列が変更されたか、行全体が削除された可能性があるか)を確認します。更新された値または削除された行を監査テーブルに書き込んで、以前のデータインポートからどのデータが変更されたかを確認することができます。データ自体を更新する必要はなく、2つのデータセット間で異なるものだけを記録したいだけです。その後、顧客データベースからすべてのデータを削除し、そのまま新しいデータファイルからデータをインポートします(この指示は残されており、変更することはできません)。大きな問題は、テーブルにカスタマイズできるので、私は顧客から得ようとしているスキーマが正確にわからないため、これを動的に行う必要があることです。私は、どのテーブルがデスティネーションにあるのかを動的に判断できるようにする必要があります。そして、そのソースを見て、値を比較して何が変わったのかを確認する必要があります。SQL Serverでソーステーブルとデスティネーションテーブルの行を動的に比較する方法
追加情報: ソースにID列はありませんが、別個の行を構成するサロゲートキーとして使用できる列がいくつかあります。
私は別の参照テーブルの各テーブルの代理キーに対してそれを行う必要がありますが、値をハードコードすることなく、一般的に各テーブルに対してこれを行うことができます。
SSIS、SP、トリガーなどのいずれかを使用することができます。私はタペシフを含むすべてを見てきましたが、私が必要とするすべてのものを持っているようではないか、または論理に入ると非常に複雑になり始めます。
もちろん、誰かがこれまでに行ったような何かの具体的な例は、非常に高く評価されます。
他に役立つ情報があれば教えてください。
おかげ
テーブル/ファイル構造を含めてください。 – Maess
@Maess - あなたはその質問をお読みになりましたか?テーブルが変更されます。 – JonH
すべてのクライアントがファイルを送信します。これらのファイルには共通の列がありますが、クライアントは独自のカスタム列を追加できます。これらのカスタム列のデータは気になりますか?カスタムデータを保持したいと仮定して、各ファイルごとにパーマネントテーブルスキーマを動的に更新する方法について説明しています。 – lyrisey