2

重複の可能性:
テーブルに影響を与えた SQL をログに記録するトリガーを作成しますか?

SQL Server 2008 で、トリガーしたクエリをログ テーブルに格納するトリガーを作成することはできますか? 例で説明します:

テーブル TAB1 とログ テーブル LOG があります。TAB1 から行を削除するクエリを実行し、LOG テーブルにそのクエリ (または、TAB1 で削除クエリを実行したユーザーを特定するのに役立つ何か) を作成したいと考えています。

これをどのように達成できるか考えていますか?

4

1 に答える 1

0

私の頭に浮かぶ唯一の方法は、 CONTEXT_INFO を介してプロシージャ名を明示的に渡すことです。これはプロシージャに入ります

declare @bin varbinary(128) = (cast(object_name(@@Procid) as varbinary(128))
set context_info @bin

トリガーで使用します

declare @procName as nvarchar(max)
set @procName = cast(context_info() as nvarchar(max))

私はそれを行う他の方法を知りません

編集: tham はあなたにとって興味深いかもしれないと思います

于 2013-01-22T10:47:13.823 に答える