SQL Server:获取应用程序的名称,从而导致触发器更新

时间:2011-03-17 15:09:41

标签: sql-server sql-server-2005 triggers

我们正在尝试查明SQL Server表上发生的一些意外更新的来源。我想做的是在该表上创建一个触发器,监视我们感兴趣的列,并在发生更新时,将一些审计信息写入单独的表中。

对于诸如用户名,日期,旧列和新列值(来自InsertedDeleted触发器表)之类的内容非常好用 - 但我想要更多: - )

在SQL事件探查器中,您可以在配置文件中看到连接到SQL Server的应用程序的名称 - 可以在连接字符串中定义为Application Name的部分:

Data Source=(local);Initial Catalog=AdventureWorks;
Integrated Security=True;Application Name="My Application"

在T-SQL FOR UPDATE触发器中是否有任何方法可以获取此信息?

3 个答案:

答案 0 :(得分:31)

SELECT APP_NAME()

答案 1 :(得分:0)

不确定但是如果应用程序在多个服务器上,您是否可以记录服务器名称?它可能有助于缩小应用程序列表的范围。

答案 2 :(得分:0)

Marc_S sP_whoIsActive存储过程可能会解决您的问题 as posted here

顺便说一句,它是T-SQL的绝佳部分