本文所讲的关闭MS SQL Server数据库连接不是指使用MS SQL Server Management Studio 去关闭某个已经连接的窗口。
这样不能关闭某些连接,比如,用Java JDBC或者其它客户端连接数据库所产生的连接MS SSMS就无法关闭。
1. 查询指定数据库有哪些连接(connection)
SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT [DBID] FROM [Master].[dbo].[SYSDATABASES] WHERE NAME='test' ---"test"为你要查询的数据库的名字 )
2.查询整个数据库系统所有的数据库有多少连接,以分组统计的方式显示。
select db_name(dbid) as [Database Name], count(dbid) as [No Of Connections], loginame as [Login Name] from sys.sysprocesses where dbid > 0 group by dbid, loginame
3.关闭指定数据库的连接
set nocount on declare @databasename varchar(100) declare @query varchar(max) set @query = '' set @databasename = 'test' --“test”为数据库的名字 if db_id(@databasename) < 4 begin print 'system database connection cannot be killeed' return end select @query=coalesce(@query,',' )+'kill '+convert(varchar, spid)+ '; ' from master..sysprocesses where dbid=db_id(@databasename) if len(@query) > 0 begin print @query exec(@query) end