テーブルに影響を与えた 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 テキストなど) に関する情報へのアクセスを提供します。この情報を抽出すると、列更新のソースを特定できます。
追加メモ:
以上がSQL Server 2008 で特定のテーブルを変更する SQL ステートメントをログに記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。