Sql server SQL Server:获取导致触发器更新的应用程序的名称
我们试图查明SQL Server表上发生的某些意外更新的来源。我想做的是在表上创建一个触发器,监视我们感兴趣的列,当更新发生时,将一些审计信息写入一个单独的表中 对于用户名、日期、新旧列值(从Sql server SQL Server:获取导致触发器更新的应用程序的名称,sql-server,sql-server-2005,triggers,Sql Server,Sql Server 2005,Triggers,我们试图查明SQL Server表上发生的某些意外更新的来源。我想做的是在表上创建一个触发器,监视我们感兴趣的列,当更新发生时,将一些审计信息写入一个单独的表中 对于用户名、日期、新旧列值(从插入的和删除的触发器表中)等内容非常有效,但我想了解更多:-) 在SQL Profiler中,您可以在配置文件中看到连接到SQL Server的应用程序的名称-该部分可以在连接字符串中定义为应用程序名称: Data Source=(local);Initial Catalog=AdventureWorks;
插入的
和删除的
触发器表中)等内容非常有效,但我想了解更多:-)
在SQL Profiler中,您可以在配置文件中看到连接到SQL Server的应用程序的名称-该部分可以在连接字符串中定义为应用程序名称
:
Data Source=(local);Initial Catalog=AdventureWorks;
Integrated Security=True;Application Name="My Application"
在T-SQL
触发器中是否有任何方法可以让UPDATE
触发器获取此信息?不确定,但如果应用程序位于多个服务器上,是否可以记录服务器名称?这可能有助于缩小应用程序的范围
SELECT APP_NAME()
Marc\u S sP\u whoiisactive存储过程可能会解决您的问题
顺便说一句,它是T-SQL中非常棒的一部分谢谢-但我真的需要应用程序的名称-它运行在一个数据库服务器上,这个名称对我没有帮助..Sheeesh!!没那么容易,马丁!!;-)我一直在搜索所有的
@@name
值,但找不到任何东西……@marc-您也可以从sys.dm_exec_sessions中的选择程序名称,其中session\u id=@@SPID
可能还有其他感兴趣的内容。如果有多个应用程序访问数据库并使用审计,作为审计表的一部分,这是一件好事。它确实帮助我们追查了过去的事情。你失去了链接。我相信一个新版本刚刚发布(或者很快就会发布),一个版本的链接就是亚当·麦卡尼奇推特上最新最棒的测试版的链接