获取SQL Server中的触发器调用者

时间:2011-03-30 11:55:27

标签: sql sql-server triggers

您能告诉我如何检索执行触发器的来电显示或姓名吗?

例如,我想知道哪个SP执行触发器或者可能是来自管理工作室的更新调用的触发器?

我知道@@ PROCID会返回触发器的ID,无法使用。

我也知道解决方案在SP中我们写入CONTEXT_INFO并从触发器读取它。 但在这种情况下,我们应该在修改某些表的所有SP中设置CONTEXT_INFO。

是否存在一些最简单的方式,如@@ PROCID?

1 个答案:

答案 0 :(得分:4)

如果是SQL Server 2005或2008以及DDL触发器,则可以使用eventdata()

Here's a link to the msdn page.

基本上它返回一个XML数据集,您可以解析该数据集以获取调用它的人(data(/EVENT_INSTANCE/LoginName)[1]),命令是什么等等。