当我尝试通过企业管理器分离数据库时,它会显示no。用户访问数据库并且不允许我们在不清除数据库连接的情况下分离。
好吧,我想知道是否可以通过SQL查询获得结果(连接特定数据库的用户数)?如果是,怎么样?
永远幸福 BKR Sivaprakash
答案 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