質問: お世話になっております。 やりたいことと言うのが、C#側で出力するログ情報とSQLServerにて実行されたSQLを関連付けての管理です。 SQLServerの実行SQLの取得はプロファイラの使用を検討しています。 ■質問 プロファイラを見てみると「ClientProcessID」でクライアント側を一意に識別できそうですが、 これをC#側で取得できる場所が見当たりません。 C#のSqlConnectionクラスのどこかにあるとは思うのですが。 もしくは他のやり方で識別できるのか? ご教授お願いいたします。 ■環境 Windows 7 Visual Studio 2017 SQL Server 2016
回答: C#側で自分のプロセスIDを取得するコードでも良さそうな気がしますが。 SQLで取得するなら、以下のコードでどうでしょうか? ``` select HOST_ID() ``` ◇参考情報 HOST_ID (Transact-SQL) ◇余談 SQLがデッドロックを起こした時にsys.dm_tran_locks.aspx)で調査するために、@@SPIDもログ情報に記載しておくのが無難です。