Sql 如何从存储过程中识别存储过程的调用方
我有一个不推荐使用的存储过程,它不应该再从代码中调用,但有一些系统仍在调用它。这是一个生产服务器,因此我对它进行诊断的间接访问非常有限 有没有办法确定从存储过程中调用特定存储过程的机器?诸如@CallingMachineIP或@CallingMachineName之类的内容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中选择*
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