65.9K
CodeProject 正在变化。 阅读更多。
Home

如何查找活动的 SQL 连接并将其终止

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.45/5 (12投票s)

2012年5月22日

CPOL
viewsIcon

197691

这段代码将显示数据库的活动连接。

引言

很多时候,很难找出 SQL Server 数据库的活动连接。这在执行数据库活动(例如恢复数据库)时可能会造成很多困扰。以下代码将显示数据库的活动连接。

如何查找活动的 SQL 连接

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

如何终止 SQL 连接

set nocount on
declare @databasename varchar(100)
declare @query varchar(max)
set @query = ''

set @databasename = 'xxx'
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

欢迎提出建议和评论。了解新的做事方法总是很有趣的。

© . All rights reserved.