首页 > 解决方案 > 如何通过 sqlcmd 检测活动用户会话

问题描述

我想在重启实例之前获取活动用户会话数,排除任何后台会话。

只是想使用以下查询,但我不确定如何通过 SQL Server 排除 tempdb 的选择会话。

SELECT COUNT(*) FROM sys.dm_exec_requests WHERE session_id in (select session_id from sys.dm_exec_sessions where status = 'running')

任何建议将再次受到赞赏。

标签: sql-serversessiondetectsqlcmdtempdb

解决方案


如果您只需要活动用户会话并排除 tempdb 的会话

尝试这个

select count(*) FROM sys.dm_exec_requests 
where 
    database_id <> DB_ID('tempdb') 
    and 
    session_id in 
        (select session_id from sys.dm_exec_sessions where is_user_process = 1 and status='running')

推荐阅读