2017-03-24 46 views
0

我需要检索当前连接的sysprocesses.program_name的值。我使用Sql Server 2008R2。如何获取当前连接的sysprocesses.program_name

换句话说,我想加入sysprocesses这个

select * from sys.dm_exec_connections 
where session_id = @@SPID 

但我没有成功。

只是为了解释的背景:

我需要知道当前会话的program_name因为我工作的应用程序写的是谁登录到系统信息(它不依赖于SQL serveer用户,因为sa用于连接)到program_name(这是一个技巧)。 如果我能读到program_name我将能够实现一些自定义逻辑到INSTEAD OF UPDATE触发器我写。

我只通过处理触发器(这是“紧急维护”)来扭曲遗留应用程序。

回答

2

使用this builtin function

select app_name() 

或者,您也可以使用这个查询来获得比计划的唯一名字更多:

select * 
    from sys.[dm_exec_connections] as [dec] 
      inner join [sys].[sysprocesses] as [sp] on [dec].[session_id] = [sp].[spid] 
    where [dec].[session_id] = @@SPID 
+0

的内置功能更加出色,其实它是只有我需要的东西。谢谢! – LaBracca

相关问题