获取执行特定存储过程的应用程序名称

时间:2019-07-04 10:35:55

标签: asp.net sql-server asp.net-mvc

我想知道执行特定存储过程的应用程序名称。我们有许多应用程序,并且所有连接字符串中都有应用程序名称属性。在这里,我不完全知道哪个应用程序在调用该存储过程。我认为我们可以通过APP_NAME()来获取此信息,但不知道要获取正确的应用程序名称的确切查询。

SELECT APP_NAME() 

2 个答案:

答案 0 :(得分:0)

APP_NAME()是一个内置函数,用于从用于设置当前会话的连接字符串中返回“应用程序名称”令牌。

关于适当设置连接字符串,这里有一篇不错的文章: http://www.sqlerudition.com/using-a-meaningful-application-name-in-the-oledb-connection-string/

如果您无法控制连接字符串,那么您将需要使用其他会话变量的组合,例如SESSION_USER()或@@ SPID,并可能参考sys.dm_exec_sessions的dmv以获得完整记录。服务器“知道”有关连接的信息。

https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sessions-transact-sql?view=sql-server-2017

答案 1 :(得分:0)

如果您需要详细的信息,我建议通过选择rpc_completed事件来使用扩展事件。 For detailed steps..