查找触发触发器的查询[重复]
Posted
技术标签:
【中文标题】查找触发触发器的查询[重复]【英文标题】:Find query that fired a trigger [duplicate] 【发布时间】:2013-01-22 10:24:38 【问题描述】:可能重复:Create Trigger to log SQL that affected table?
是否可以在 SQL Server 2008 中编写一个触发器,将触发它的查询放入我的日志表中?我将在示例中进行解释:
我有一个表 TAB1 和日志表 LOG。我执行从 TAB1 中删除行的查询,并且我希望在我的 LOG 表中包含该查询(或其他可以帮助我识别谁在 TAB1 上执行删除查询的东西)。
知道如何实现吗?
【问题讨论】:
您可以为此使用扩展事件。 【参考方案1】:我想到的唯一方法是通过 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
【讨论】:
以上是关于查找触发触发器的查询[重复]的主要内容,如果未能解决你的问题,请参考以下文章