如何获取当前连接的sysprocesses.program_name

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取当前连接的sysprocesses.program_name相关的知识,希望对你有一定的参考价值。

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

换句话说,我想加入sysprocesses

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

但我没有成功。

只是为了解释一下背景:

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

我正在通过仅使用触发器来伪装遗留应用程序(这是“紧急维护”)。

答案

使用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

以上是关于如何获取当前连接的sysprocesses.program_name的主要内容,如果未能解决你的问题,请参考以下文章

OS X下如何获取当前连接的***名称

如何在java里获取hibernate连接池最大连接数和当前连接数

如何获取C3P0连接池内当前可用连接数

如何在 GCP 上的 TCP 负载均衡器上获取当前连接数

如何在没有互联网连接的情况下在android中获取当前纬度和经度?

我如何在普罗米修斯(kubernetes 监控)中获取(当前)已建立的 TCP 连接数