ホームページ > データベース > mysql チュートリアル > SQL Server 2008 で特定のテーブルを変更する SQL ステートメントをログに記録するにはどうすればよいですか?

SQL Server 2008 で特定のテーブルを変更する SQL ステートメントをログに記録するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-03 14:01:08
オリジナル
205 人が閲覧しました

How Can I Log the SQL Statements That Modify a Specific Table in SQL Server 2008?

テーブルに影響を与えた SQL のログ記録

列の更新元を特定するには、影響を受けるテーブルにトリガーを作成します。変更の原因となった SQL をキャプチャします。 Microsoft SQL Server 2008 でこれを実現する方法を見てみましょう。

トリガーの作成

DDL ステートメントを使用して、テーブル更新の SQL をログに記録するトリガーを作成できます。 :

CREATE TRIGGER trigger_name ON table_name
AFTER UPDATE
AS
BEGIN
    -- Declare a variable to store the executed SQL
    DECLARE @sql_text VARCHAR(MAX);
    
    -- Retrieve the executed SQL from the context_info() function
    SET @sql_text = CAST(EVENTDATA() AS NVARCHAR(MAX));
    
    -- Insert the SQL text into a log table or perform other desired actions
    INSERT INTO log_table (sql_text) VALUES (@sql_text);
END;
ログイン後にコピー

実行されたファイルへのアクセスSQL

トリガーが作成されると、トリガー コード内で EVENTDATA() 関数を使用して、実行された SQL をキャプチャできます。 EVENTDATA() 関数は、現在のデータベース イベント (イベントの原因となった SQL テキストなど) に関する情報へのアクセスを提供します。この情報を抽出すると、列更新のソースを特定できます。

追加メモ:

  • trigger_name、table_name、log_table を適切なものに置き換えてください。
  • 電子メールの送信やファイルへの書き込みなど、追加のアクションを実行するトリガーをカスタマイズできます。
  • トリガーを使用する場合は、パフォーマンスへの影響を考慮してください。これらはデータベース全体の応答性に影響を与える可能性があります。

以上がSQL Server 2008 で特定のテーブルを変更する SQL ステートメントをログに記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート