查找触发触发器的查询

时间:2013-01-22 10:24:39

标签: sql-server sql-server-2008

  

可能重复:
  Create Trigger to log SQL that affected table?

是否可以在SQL Server 2008中编写一个触发器,将触发它的查询放入我的日志表中?我将在示例中解释它:

我有一个表,TAB1和日志表LOG。我执行从TAB1删除行的查询,我希望在我的LOG表中有那个查询(或其他什么可以帮助我识别谁在TAB1上执行了删除查询)。

知道如何实现这一目标吗?

1 个答案:

答案 0 :(得分: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))

我不知道其他任何方法

编辑: 我认为你可能会感兴趣clickie