2017-03-24 1 views
0

Ich muss den Wert sysprocesses.program_name für die aktuelle Verbindung abrufen. Ich benutze Sql Server 2008R2.Wie sysprocesses.program_name für die aktuelle Verbindung erhalten

Mit anderen Worten würde Ich mag sysprocesses diesen

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

beitreten Aber ich bin nicht gelingt.

einfach den Kontext zu erklären:

Ich brauche program_name der aktuellen Sitzung wissen, weil die Anwendung arbeite ich an Informationen über schreibt, die in in das System angemeldet ist (es ist nicht auf SQL serveer Benutzer abhängt, weil sa für die Verbindung verwendet wird) in program_name (es ist ein Trick). Wenn ich program_name lesen könnte, wäre ich in der Lage, einige benutzerdefinierte Logik in einen INSTEAD OF UPDATE Trigger zu implementieren, den ich schreibe.

ich twake eine Legacy-Anwendung durch die Arbeit nur auf Auslöser (es ist "Notfall Wartung").

Antwort

2

Verwendung this builtin function:

select app_name() 

Alternativ können Sie diese Abfrage verwenden, um mehr als nur den Namen des Programms zu erhalten:

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 
+0

Die eingebaute Funktion ist noch besser, in der Tat ist es die nur was ich brauche. Vielen Dank! – LaBracca

Verwandte Themen