2010-09-02 8 views
0

Alors que je suis en train de détacher une base de données via Enterprise Manager, il montre le pas. des utilisateurs accédant à la base de données et il ne nous a pas permis de se détacher sans effacer la connexion à la base de données.Obtenir nombre d'utilisateurs connectés dans SQL Server 2000

Eh bien, je veux savoir si le résultat (pas. D'utilisateurs qui se connectent une base de données particulière) pourrait être obtenue par le biais d'une requête SQL? Si oui, comment?

Bonheur Toujours BKR Sivaprakash

Répondre

2

Cela vous donnera des résultats corrects. Ajoutez votre nom de base de données dans la requête -

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 

Cela inclut les connexions à partir de SQL Agent. Notez que le même utilisateur peut être en utilisant plusieurs connexions à partir de la même application, et donc compté plus d'une fois.

1
EXEC SP_WHO 

ou

EXEC SP_WHO2 

peut-être (pense que ce pourrait être SQL Server 2005 vers le haut):

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