2012-02-21 13 views
1

以下は私のテーブル "オーダー"の必要条件です: 1)1日目に、bcpコマンドを使用して全データをユニコードテキストファイルとして送信します。 2)毎日翌日から、その日の取引にデルタデータのみを送信する必要があります。 デルタを実装する最善の方法は何ですか?私は現在のテーブルデザインを避けたいと思いますし、すべてのテーブルにタイムスタンプフィールドがあるわけではありません。トランザクションテーブルのデルタデータをエクスポートする最良の方法

+0

1日目のbcpファイルを保存場所に保存することをお勧めします(影響を受けた行の主キーのみを保存することもできます)。 2日目にもう一度bcpを実行し、新しいファイルと1日目のファイルを比較し、必要のない行を削除することができます。同じことを翌日などに行うことができます。 – dom

+0

こんにちは。それは自動化されなければならない。変更は新しい行の追加、行の削除、行の更新となります。 –

+0

それのためのperl/shellスクリプトを書いていますか?私はこれらの手順を手動で行うことを意味しませんでした;-) – dom

答えて

3

SQL Serverの変更履歴を調べます。それはあなたが望むことをします。

PK値と各行のハッシュ値を深夜にスナップショットすることもできます。次の夜に再びスナップショットを作成し、完全結合を使用して差分を作成します。

+0

興味深いアイデアは有りますが、技術的にはまだテーブルを変更する必要があります。 –

+0

テーブルを変更する必要はありません。 PK値とハッシュを保持する* new *テーブルを作成します。 – usr

0

あなたはすでに最良の方法を除外しています。今では、前日のスナップショットに基づいて差分を手動で実行することに限定されています。

+0

こんにちはジョナサン。その最善の方法は何ですか?あなたが現在のデザインに影響を与えても、それが最良の方法であると感じる場合は、回答を編集してください。 Manual diffは大きな番号です。 –

関連する問題