2017-03-24 16 views
0

現在の接続ではsysprocesses.program_nameの値を取得する必要があります。私はSQL Server 2008 R2を使用します。現在の接続に対してsysprocesses.program_nameを取得する方法

言い換えれば、私はこの

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

sysprocessesに参加したいと思います。しかし、私は成功していないです。

だけコンテキストを説明する:

私が働いているアプリケーションがシステムにログインしているユーザーについての情報を書き込みますので、私は、(それがSQL serveerユーザーに依存しない、現在のセッションのprogram_nameを知っておく必要があります接続のためにsaが使用されているため)program_name(それは秘訣です)。 program_nameを読むことができたら、私は書いているINSTEAD OF UPDATEトリガーにカスタムロジックを実装することができます。

私はトリガーだけで作業することで従来のアプリケーションを悩ませています(これは「緊急保守」)。

答えて

2

使用this builtin function:また

select app_name() 

、あなたがプログラムの名前だけよりも取得するには、このクエリを使用することができます実際にはそれは、組み込み関数がさらに良いです

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

を私が必要なものだけ。ありがとう! – LaBracca

関連する問題