虽然我试图通过企业管理器分离数据库,但它显示的编号为。的用户访问数据库,并且它不允许我们在不清除数据库连接的情况下进行分离。在SQL Server 2000中获取连接用户的数量
那么,我想知道是否可以通过SQL查询获得结果(连接特定数据库的用户的数量)?如果是,如何?
快乐,永远快乐 BKR Sivaprakash
虽然我试图通过企业管理器分离数据库,但它显示的编号为。的用户访问数据库,并且它不允许我们在不清除数据库连接的情况下进行分离。在SQL Server 2000中获取连接用户的数量
那么,我想知道是否可以通过SQL查询获得结果(连接特定数据库的用户的数量)?如果是,如何?
快乐,永远快乐 BKR Sivaprakash
这会给你正确的结果。在查询中添加数据库名称 -
select spid, status, loginame,
hostname, blocked, db_name(dbid) as databasename, cmd
from master..sysprocesses
where db_name(dbid) like '%<database_name>%'
and spid > 50
这将包括来自SQL Agent的登录。请注意, 同一用户可以使用来自同一应用程序的多个连接,即 ,因此可以多次计数。
EXEC SP_WHO
或
EXEC SP_WHO2
可能(认为这可能是SQL Server 2005中向上):
SELECT COUNT(*) AS ConnectionCount,
CASE WHEN is_user_process =1 THEN 'UserProcess' ELSE 'System Process' END
FROM sys.dm_exec_sessions
GROUP BY is_user_process