usage:
execute KillDatabaseSessions_SP @DBName ='NorthWind'
usage:
execute KillDatabaseSessions_SP @DBName ='NorthWind'
CREATE PROCEDURE KillDatabaseSessions_SP ( @DBName VARCHAR(50) ) AS DECLARE @SessionID INT CREATE TABLE #DBSessions ( SPID INT, status VARCHAR(50), loginname VARCHAR(50), hostname VARCHAR(100), blk VARCHAR(10), dbname VARCHAR(100), cmd VARCHAR(50), CPUTime INT, DiskIO INT, lastbatch VARCHAR(50), programname VARCHAR(100), SPID2 INT, requestid INT ) ; INSERT INTO [#DBSessions] ( [SPID], [status], [loginname], [hostname], [blk], [dbname], [cmd], [CPUTime], [DiskIO], [lastbatch], [programname], [SPID2], [requestid] ) EXEC sp_who2 ; IF( (SELECT COUNT(SPID) FROM [#DBSessions] WHERE upper(dbname) = UPPER(@DBName))>0) BEGIN DECLARE ctr CURSOR FOR SELECT SPID FROM [#DBSessions] WHERE upper(dbname) = UPPER(@DBName) ; DECLARE @string VARCHAR(1000) OPEN ctr FETCH NEXT FROM ctr INTO @SessionID WHILE( @@FETCH_STATUS = 0 ) BEGIN SET @string = 'KILL ' + CONVERT(VARCHAR(20), @SessionID) exec ( @string ) select @string FETCH NEXT FROM ctr INTO @SessionID END CLOSE ctr DEALLOCATE ctr DROP TABLE [#DBSessions] END