Kill all DB Connections

Applicability:

SQL Server 2000: Tested

SQL Server 2005: Tested

SQL Server 2008: Tested

SQL Server 2008R2: Tested

SQL Server 2012: Tested

Credits:

Author: ChillyDBA

Date: 2006

Description

This is a simple script that I use almost on a weekly basis.

Normally it gets prefixed on the beginning of a restore command when refreshing DEV/TEST/QA/STAGING databases.

I wouldn't normally recommend its use in a PROD environment, but there have been occasions in the past when it has been necessary.

Code

SET NOCOUNT ON

DECLARE

@cmd VARCHAR(100),

@spid INT,

@dbname SYSNAME

SELECT @dbname = '<Database Name>'

SELECT @spid = MIN(spid)

FROM MASTER..sysprocesses

WHERE DB_NAME(dbid) = @dbname

WHILE @spid IS NOT NULL

BEGIN

SELECT @cmd = 'kill ' + CAST(@spid AS VARCHAR(10))

EXEC(@cmd)

SELECT CAST(@spid AS VARCHAR(10)) + ' killed'

SELECT @spid = MIN(spid)

FROM MASTER..sysprocesses

WHERE DB_NAME(dbid) = @dbname

AND spid > @spid

END

SET NOCOUNT OFF