Tuesday, April 24, 2012

Kill all spid's from a database

-- Kill all spid's from a database
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[dba_kill_database_connection]
@db_name VARCHAR (50)
AS

SELECT  CONVERT(VARCHAR, spid) as Sid
 INTO #TEMP
 FROM master..sysprocesses p, master..sysdatabases d WHERE p.dbid = d.dbid
 and d.name = @db_name
DECLARE @SID INT
DECLARE cur_kill CURSOR FOR
 SELECT SID FROM #TEMP
open cur_kill
FETCH NEXT FROM cur_kill INTO @sid
WHILE @@FETCH_STATUS = 0 AND @@ERROR = 0
BEGIN
 DECLARE @query VARCHAR(100)
 SELECT @Query = 'kill ' + convert(varchar, @SID)
 EXEC (@query)
FETCH NEXT FROM cur_kill INTO @sid
END
close cur_kill
DEALLOCATE cur_kill
DROP TABLE #temp
GO
EXEC dba_kill_database_connection 'DBNAME'

No comments:

Post a Comment