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

发布于 2024-09-18 01:48:08 字数 142 浏览 8 评论 0原文

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

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

幸福永远 BKR 西瓦普拉卡什

While I'm trying to detach a database through Enterprise Manager, it shows the no. of users accessing the database and it didn't allow us to detach without clearing the database connection.

Well, I want to know whether the result (no. of users connecting a particular database) could be obtained through a SQL query? If yes, how ?

Happiness Always
BKR Sivaprakash

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼中杀气 2024-09-25 01:48:08

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

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 代理的登录名。请注意,
同一用户可以使用同一应用程序的多个连接,
因此会被多次计算。

This will give you proper results. Add your database name in the query -

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

This will include logins from SQL Agent. Note that the
same user can be using multiple connections from the same application,
and thus be counted more than once.

宛菡 2024-09-25 01:48:08
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
EXEC SP_WHO

or

EXEC SP_WHO2

maybe (think this might be SQL Server 2005 upwards):

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文