4

変更追跡を使用して、SQL Server 2008 の単一のテーブルに変更を加えることができることはわかっています。ただし、データベース全体のすべての変更を 1 回のクエリでクエリするための適切な方法を見つけることができませんでした。

これは可能ですか?

動的 SQL を作成し、これを実行するために exec を使用することについてどう思いますか? あなたが私に指摘できるこの例はありますか?

SQL Server 2008 で特定の列/行データの変更を監視する代わりに、トリガーを作成して維持するよりも労力がかからない方法はありますか? DB には 1500 を超えるテーブルがあり、これはオプションではありません。

ありがとう

4

1 に答える 1

2

CDC を使い始めたとき、次の URL が使い始めるのに役立ちました: http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/

CDC の欠点は、誰がデータを変更したかがわからず、データが変更されたことと、以前のデータが何であったかだけを確認できることです。CDC は、Enterprise、Developer、および Evaltion エディションでのみ使用できます。

特定のテーブルのデータ変更を監査する必要がある場合は、SQL Server 2008 以降で利用できる監査機能を使用することもできます。データベースに対して監査を有効にすると、誰がどのコマンドを実行したかを確認できます。欠点は、実行されたコマンドのみが表示され、コマンドが実行される前に存在していたデータが表示されないことです。

この Web サイトは、状況に適した機能を判断するのに役立ちます。さまざまな方法とその長所と短所について説明します: http://solutioncenter.apexsql.com/tag/methods-for-auditing-sql-server/

トリガーを使用すると、レコードの挿入、更新、および削除のプロセスが遅くなるため、私は常にトリガーの使用を避けています。

これがあなたに少し役立つことを願っています

于 2014-07-25T20:35:23.663 に答える