Tuesday, September 28, 2010

Kill every one ..:) just connection to SQL Server

create procedure [dbo].[sp_killusers](@database varchar(30))

as

----------------------------------------------------

-- * Created By David Wiseman, Updated 19/11/2006

-- * http://www.wisesoft.co.uk

-- * This procedure takes the name of a database as input

-- * and uses the kill statment to disconnect them from

-- * the database.

-- * PLEASE USE WITH CAUTION!!

-- * Usage:

-- * exec sp_killusers 'databasename'

----------------------------------------------------

set nocount on

declare @spid int

declare @killstatement nvarchar(10)



-- Declare a cursor to select the users connected to the specified database

declare c1 cursor for select request_session_id

from sys.dm_tran_locks

where resource_type='DATABASE'

AND DB_NAME(resource_database_id) = @database

open c1

fetch next from c1 into @spid

-- for each spid...

while @@FETCH_STATUS = 0

begin

-- Don't kill the connection of the user executing this statement

IF @@SPID <> @spid

begin

-- Construct dynamic sql to kill spid

set @killstatement = 'KILL ' + cast(@spid as varchar(3))

exec sp_executesql @killstatement

-- Print killed spid

print @spid

end

fetch next from c1 into @spid

end

-- Clean up

close c1

deallocate c1