0

winform アプリがあり、SQL はすべてインラインであり、残念ながらストアド プロシージャは使用されていません。

どのアクション (INSERT、UPDATE、または DELETE) が SQL テーブルに対して実行されたかを追跡し、単一のテーブルで行われているアクティビティの記録を監視およびキャプチャする最良の方法は何ですか。

SQL サーバー プロファイラーが利用可能であることは知っていますが、理想的には、プロファイラーを常に実行し続けたくありません。必要なのは、舞台裏で実行され、1 つのテーブルのすべてのアクティビティをキャプチャすることです。

トリガーを使用することを考えましたが、それを使用することにはいくつかの欠点があるので、他のオプションがあるかどうか疑問に思っていましたか?

ありがとう

4

4 に答える 4

2

SQL Server 2008 (およびそれ以降) を使用している場合、変更データ キャプチャは開始するのに適した場所のように思えます。

http://msdn.microsoft.com/en-us/library/bb522489(v=sql.105).aspx

于 2012-07-10T21:53:00.013 に答える
0

いくつかの方法があります。コードで実行したいだけの場合 (プログラムによって異なります)、コマンドをリストに追加してファイルに書き込むことができます。

EntityFrameWork を使用している場合は、データの変更をログに記録します。また、EF を使用する場合は、ストアド プロシージャの使用が最適です。

コードまたはプロジェクトのサンプルが役立ちます。TransactionLogs はすでにその情報をキャプチャしています。

そして明らかに、Sql Server を使用していると、これらの ORACLE の人々はとても嫉妬しています。

また、DataSourceViews の使用も見てください。これは、サーバーで何が起こっているかを伝える方法です。

于 2012-07-11T00:56:02.287 に答える
0

ORACLE を使用している場合は、次のステートメントを使用してテーブルを監査できます (fireid が更新を行うユーザーの名前である場合)。

AUDIT SELECT TABLE、UPDATE TABLE、INSERT TABLE、DELETE TABLE BY fireid BY ACCESS;

結果は SYS.AUD$ テーブルに格納されます

(別のデータベースを使用している場合は、DML ステートメントの監査に関するドキュメントを検索してください。)

SQL SERVER: 「SQL AUDIT」という機能があります。これはあなたが探しているものですか? http://www.bradmcgehee.com/2010/03/an-introduction-to-sql-server-2008-audit/

于 2012-07-10T21:50:23.400 に答える
0

SQL Server CHANGE TRACKING TeEchinique が要件に最も適していると思います。

于 2012-07-12T09:38:29.540 に答える