2017-09-13 7 views
0

SQL Serverデータベースには、約800以上のテーブルがあり、40〜50個のテーブルがビジネスクリティカルなテーブルです。 MISチームは、これらの50のビジネステーブルに基づいてレポートを生成する必要があります。SQL Server Delta Records Pulling

これらの50個のテーブルは頻繁に更新されます。 MISチームには、これらのデルタレコードが必要です(更新/挿入/削除)

最高の解決策は何でしょうか?

我々は、これらの50個のテーブルでここに2.Replication 3.Mirroring 4.Introducing新しい列(LastModifiedDate &作成指数)で 1.Alwaysをいくつかapprochesを持っており、定期的にこれらのレコードを引っ張り、MIS環境にそれを埋めます。

新しい列LastModifiedDateのアプローチでは、コードが大幅に変更されます。これらの50個のテーブルに基づいて

は、我々はそれが挿入/更新

文を持っているストアドプロシージャの膨大な数を持っています。これらのストアドプロシージャでは、LastModifiedDateのコードを変更する必要があります。

上記の承認の中で、最も良い解決策は何でしょうか?

Plsは私たちに他のアプローチがあるかどうかをお知らせします。注:私たちが使用しているSQL Server 2008 R2

よろしくカルティク

答えて

0

一つのアプローチは、挿入、更新、およびこれらのテーブル上のトリガを削除を持つことである、とまったく同じ列を持つ各テーブルのアーカイブテーブルプラス例えばusername、modifieddatetime、新しいものと古いものを示すビット。次に、挿入/削除+現在のユーザー、現在の時刻と挿入された1と削除された0のアーカイブ選択にトリガーを挿入するだけです。

MISはすべてアーカイブテーブルですので、既存のテーブルを変更する必要はありません。

+0

返信いただきありがとうございます。私はトリガがより良い解決策ではないことを願っています。 – Karthik

+0

@Karthik 150個のトリガーを作成すると心配しますが、私はそれらを自動的に作成するストアードプロシージャーを持っています。 –

+0

Bro、150トリガーを作成することはここで重要ではありません。私はそれを作成するためのスクリプトを書くことができます。しかし、その影響は重要なデータベースであり、頻繁に挿入/更新されるため、非常に重要です。トリガーが問題を抱えている – Karthik