Sql 如何从存储过程中识别存储过程的调用方

Sql 如何从存储过程中识别存储过程的调用方,sql,sql-server-2008,stored-procedures,diagnostics,Sql,Sql Server 2008,Stored Procedures,Diagnostics,我有一个不推荐使用的存储过程,它不应该再从代码中调用,但有一些系统仍在调用它。这是一个生产服务器,因此我对它进行诊断的间接访问非常有限 有没有办法确定从存储过程中调用特定存储过程的机器?诸如@CallingMachineIP或@CallingMachineName之类的内容 select hostname from master..sysprocesses where spid=@@SPID 或 @@SPID应该为您提供当前进程ID 那么 从master.dbo.sysprocesss中选择*

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

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

select hostname from master..sysprocesses where spid=@@SPID


@@SPID
应该为您提供当前进程ID

那么

从master.dbo.sysprocesss中选择*
spid=@@spid


您可以从其中一列中获取所需内容。

+1-如果您有多个不同的应用程序调用该过程(查询分析器、Crystal Reports等),您可以选择
程序名
,也可以缩小范围
select host_name from sys.dm_exec_sessions where session_id=@@SPID