SELECT *
FROM master.dbo.sysprocesses
where dbid=DB_ID('OnlineExam')
OnlineExam是自己的数据库名称
2、查询某个数据库用户的连接情况
sp_who 'sa'
3、查看数据库允许的最大连接
select @@MAX_CONNECTIONS
4、查看数据库自上次启动以来的连接次数
SELECT @@CONNECTIONS
5、关闭连接
上面的查询可以得到spid,根据spid,关闭进程就可以了。
Kill 54
6、SQL SERVER 2008 删除某个数据库的所有连接进程
declare @spid int ;
declare @ddlstring nvarchar(max);
declare @dbname varchar(200);
set @dbname='OnLineExam';
declare tmpcur cursor
for select distinct spid as spid fromsys.sysprocesses
where dbid=db_id(@dbname) ;
OPEN tmpcur;
fetch tmpcur into @spid ;
while (@@FETCH_STATUS=0)
begin
set @ddlstring=N'Kill '+CONVERT(nvarchar,@spid) ;
execute sp_executesql @ddlstring ;
fetch tmpcur into @spid ;
end ;
close tmpcur ;
deallocate tmpcur ;
7、查询当前数据库连接并清空所有的数据库连接
查询数据库实例DBName的所有连接
select * from master.dbo.sysprocesses where dbid = DB_ID(‘DBName’)
清除指定实例DBName的所有连接
USE master
go
declare @programName nvarchar(200),
@spid nvarchar(20)
declare cDblogin cursor for
select cast(spid as varchar(20)) AS spid from master..sysprocesses where dbid=db_id(‘db_id_demo’)
open cDblogin
fetch next from cDblogin into @spid
while @@fetch_status=0
begin
–防止自己终止自己的进程
–否则会报错不能用KILL 来终止您自己的进程
IF @spid <> @@SPID
exec( ‘kill ‘+@spid)
fetch next from cDblogin into @spid
end
close cDblogin
deallocate cDblogin