获取SQL Server 2000中已连接用户的数量

时间:2010-09-02 09:33:41

标签: sql-server-2000

当我尝试通过企业管理器分离数据库时,它会显示no。用户访问数据库并且不允许我们在不清除数据库连接的情况下分离。

好吧,我想知道是否可以通过SQL查询获得结果(连接特定数据库的用户数)?如果是,怎么样?

永远幸福 BKR Sivaprakash

2 个答案:

答案 0 :(得分:2)

这会给你正确的结果。在查询中添加数据库名称 -

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的登录。请注意 同一个用户可以使用同一个应用程序的多个连接, 因而不止一次。

答案 1 :(得分:1)

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