2012-01-17 22 views
1

私は新しいデータを毎分挿入するテーブルを持っています。私がここに持っているソースコードによれば、それはもはや使用されない1つのクラスでのみ行われます。SQL Server:トラックテーブルの挿入

挿入をトレースする方法はありますか?私が意味するのは、どのクエリを挿入したのか、それらのクエリを誰が送ったのかなどを確認することです。

私はいくつかの方法で成功しました(例えば、sp_who2 'Active'ストアドプロシージャ)。また、SQL Serverを実行しているマシンとトランザクションバックアップファイル(.trnファイル)にアクセスできますが、これらのファイルを開く方法はわかりません。同じデータベースに

sp_depends tablename 

これだけの状態情報をそれはあなたが必要なものを言うかもしれない:

答えて

3

は挿入を次の表にトリガーを追加して、他のテーブルにこれらの変数を挿入します。

CREATE TRIGGER YourTrigger On YourTable 
AFTER INSERT 
AS 
SET NOCOUNT ON; 

    INSERT logtable 
    SELECT APP_NAME(), HOST_NAME(), SUSER_SNAME(), GETDATE(), * FROM INSERTED 
GO 

getdate(), 
host_name(), 
App_Name(), 
suser_sname() 

は、トリガは次のようになり、これは十分に

であるように私には思えます

または

クエリをキャッチするためにSQL Serverプロファイラを使用することができます - それはより柔軟である可能性があります

+0

あなたの返信Olegに感謝します。 'INSERT AS AFTER [Customer_Email_Unsubscribe] で[CatchTrigger] TRIGGERをCREATE:私は、このトリガーを試みたが、それは何も出力しない – Azimuth

+0

...プロファイラを試してみましたが、同様のクエリを見つけたが、私はとにかくそれらを送るだ人を見つけ出すことはできません BEGIN SET NOCOUNT ON; INSERT INTO NULLをSELECT temp_loginsert、APP_NAME()、HOST_NAME()、SUSER_SNAME()、GETDATE()、サマイル、dUnsubscribeDate、iUnsubscribeID挿入 END' – Azimuth

+0

FROMそれは何かを出力しません、それは、テーブルをログに記録するように書きますあなたは定期的にチェックする必要があります –

0

あなたはこのようsp_dependsを使用することができます!

+0

それは試してみましたが、テーブルから選択して何も挿入しない1つのSPを見つけた... – Azimuth

+0

その後、データベースまたは別のアプリケーションから取得できます。 –

+0

はい、そのテーブルに挿入するコードはVBクラスにあります。私はすべての挿入をログに記録するコードを変更しようとしています。すべての挿入がそのクラスを通過しているのか、あるいは一部がDBに直接行かれているのかを確認します。 – Azimuth

関連する問題