先大概了解下数据库连接内容,后续详细分析使用场景;
1、通过系统表查询
SELECT * FROM
[Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT
[DBID]
FROM
[Master].[dbo].[SYSDATABASES]
WHERE
NAME='DBName'
)
在上述sql语句中,DBName 是需要查看的数据库,然后查询出来的行数,就是当前的连接数。
2、select * from sysprocesses where dbid in (select dbid from sysdatabases where name='MyDatabase')
这样查询出来的结果和上面第一种方法查出的结果是一样的
3、通过系统的存储过程来查找
SP_WHO 'UserName' 其中,UserName 是登陆Sql的用户名
这样查出来是所有数据库的连接集合,可根据里面的dbname来具体查看具体某个数据库的连接数,如下图