Sometimes in SQL you need to delete some rows, delete a Table or the DB. But what if a user is still connected to it. The solution is simple, kill all the sessions on that DB with a simple script:
USE master SET NOCOUNT ON DECLARE @DBName varchar(50) DECLARE @spidstr varchar(8000) DECLARE @ConnKilled smallint SET @ConnKilled=0 SET @spidstr = '' Set @DBName = 'YOUR_DATABASE_NAME' IF db_id(@DBName) < 4 BEGIN PRINT 'Connections to system databases cannot be killed' RETURN END SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; ' FROM master..sysprocesses WHERE dbid=db_id(@DBName) IF LEN(@spidstr) > 0 BEGIN EXEC(@spidstr) SELECT @ConnKilled = COUNT(1) FROM master..sysprocesses WHERE dbid=db_id(@DBName) END
For MySQL, you could try this:
select concat('KILL ',id,';') from information_schema.processlist; KILL PROCESS_ID
No Comments Yet