2010-09-02 48 views
0

虽然我试图通过企业管理器分离数据库,但它显示的编号为。的用户访问数据库,并且它不允许我们在不清除数据库连接的情况下进行分离。在SQL Server 2000中获取连接用户的数量

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

快乐,永远快乐 BKR Sivaprakash

回答

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
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