2010-09-10 4 views
9

Ich habe eine veraltete gespeicherte Prozedur, die nicht mehr aus dem Code aufgerufen werden soll, aber es gibt einige Systeme, das es immer noch anruft. Dies ist ein Produktions-Server, damit ich sehr indirekten Zugriff auf sie für die Durchführung Diagnostik beschränkt haben.Wie der Anrufer von einer gespeicherten Prozedur zu identifizieren, von innerhalb des Sproc

Gibt es eine Möglichkeit, die Maschine zu bestimmen, die eine bestimmte gespeicherte Prozedur aus der sproc ruft an? Etwas wie @@ CallingMachineIP oder @@ CallingMachineName

Antwort

9
select hostname from master..sysprocesses where [email protected]@SPID 

oder

select host_name from sys.dm_exec_sessions where [email protected]@SPID 
+3

+1 - Und wenn Sie mehrere unterschiedliche Anwendungen haben den Aufruf der Prozedur (Query Analyzer, Crystal Reports, etc.) können Sie wählen, 'program_name' und es zu verengen – LittleBobbyTables

5

@@SPID sollte Ihnen die aktuelle Prozess-ID.

Dann

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

Sie können, was Sie von einer dieser Spalten benötigen.

Verwandte Themen