如何使用SQL终止基于DB_NAME的活动连接?

时间:2015-10-06 09:26:43

标签: sql sql-server sql-server-2008

我目前通过前端使用应用程序连接到客户数据库,然后运行以下查询显示活动连接:

SELECT DB_NAME(DBID) AS DBNAME,
       COUNT(DBID)   AS NUMBEROFCONNECTIONS,
       LOGINAME      AS LOGINNAME
FROM   SYS.SYSPROCESSES
WHERE  DBID > 0
GROUP  BY DBID, LOGINAME 

我能够在应用程序的前端运行SQL,因此如何基于DB_NAME(DBID) = 'CustomerDB'杀死所有活动连接 用SQL?

2 个答案:

答案 0 :(得分:0)

KILL命令可能不适用于新建立的连接。您可以尝试将数据库设置为Single_User模式,而不是使用{/ 1}}语句,如

ALTER

答案 1 :(得分:-1)

USE master
GO

DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), spid) + ';'
FROM master..sysprocesses 
WHERE dbid = db_id('MyDB')

EXEC(@kill);

致谢:Script to kill all connections to a database (More than RESTRICTED_USER ROLLBACK)