Microsoft SQL Server 查詢連接數和關閉連接數


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM