Kill All Processes for a Passed Database Name (SQL 2005)

We have an upcoming requirement to kick all users out of a database before running a backup.

So I'm saving this script for future reference (thanks to Chris for posting it to the SQL Down Under List):

CREATE PROC [dbo].[sp_SpidKill]
  @db VarChar(200)
AS

DECLARE @Tmp VarChar(10)
DECLARE @spid VarChar(10)
DECLARE @Kill VarChar(200)

SELECT @spid = Min(spid)
FROM master.sys.sysprocesses
WHERE dbid = DB_ID(@db)

WHILE @spid IS NOT NULL
BEGIN
  SET @Kill = 'KILL ' + @spid 
 EXEC(@Kill)

  SET @Tmp = @spid
  SET @spid = NULL

  SELECT @spid = Min(spid)
  FROM master.sys.sysprocesses
  WHERE dbid = DB_ID(@db)
   AND spid > @Tmp
END

Tags: , , , ,

posted @ Wednesday, November 28, 2007 4:13 PM

Print
Comments have been closed on this topic.
«July»
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567