本文所講的關閉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