Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:获取导致触发器更新的应用程序的名称_Sql Server_Sql Server 2005_Triggers - Fatal编程技术网

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 Server表上发生的某些意外更新的来源。我想做的是在表上创建一个触发器,监视我们感兴趣的列,当更新发生时,将一些审计信息写入一个单独的表中

对于用户名、日期、新旧列值(从
插入的
删除的
触发器表中)等内容非常有效,但我想了解更多:-)

在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
可能还有其他感兴趣的内容。如果有多个应用程序访问数据库并使用审计,作为审计表的一部分,这是一件好事。它确实帮助我们追查了过去的事情。你失去了链接。我相信一个新版本刚刚发布(或者很快就会发布),一个版本的链接就是亚当·麦卡尼奇推特上最新最棒的测试版的链接