2015-10-06 47 views
0

我使用有應用經由前端當前連接到客戶數據庫和我運行,其顯示活動連接以下查詢:如何使用SQL基於DB_NAME終止活動連接?

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的活動連接?

+0

提取SPID,並用它在KILL命令 –

+0

我找到了答案在一個單一的點擊,你真的嘗試研究? – Japongskie

回答

-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)

+0

這應該被標記爲重複,而不是作爲自己的答案發布。 –

+0

@EvaldasBuinauskas,是的,我發佈了它,因爲它似乎詢問的人沒有嘗試自己研究,所以即時試圖幫助..這就是爲什麼我把信用..燁我也標記爲重複這個問題。 – Japongskie

+0

@Japz Divino:你是粗魯的 – PriceCheaperton

0

KILL命令可能不會對新建立的連接工作。您可以嘗試服用數據庫Single_User模式,而使用ALTER語句像

ALTER DATABASE CustomerDB 
SET SINGLE_USER WITH ROLLBACK IMMEDIATE