如何从Sproc中识别存储过程的调用者

Chr*_*nce 11 sql stored-procedures diagnostics sql-server-2008

我有一个已弃用的存储过程,不应再从代码中调用,但有一些系统仍在调用它.这是一个生产服务器,因此我对它进行非常有限的间接访问以执行诊断.

有没有办法确定从sproc中调用特定存储过程的机器?诸如@@ CallingMachineIP或@@ CallingMachineName之类的东西

Mar*_*ith 11

select hostname from master..sysprocesses where spid=@@SPID
Run Code Online (Sandbox Code Playgroud)

要么

select host_name from sys.dm_exec_sessions where session_id=@@SPID
Run Code Online (Sandbox Code Playgroud)

  • +1 - 如果您有多个不同的应用程序调用该过程(查询分析器,Crystal Reports等),您也可以选择`program_name`来缩小它 (4认同)

Bra*_*don 6

@@SPID 应该给你当前的进程ID.

然后,

select * from master.dbo.sysprocesses where spid = @@SPID

您可以从其中一个列获得所需内容.