CREATE PROCEDURE SP_CloseDBConnect @Dname varchar(50) AS BEGIN DECLARE @name varchar(50), @s varchar(1000) IF (@Dname = '') BEGIN DECLARE DataName CURSOR FOR SELECT name FROM sys.databases WHERE name not in ('master'); OPEN DataName FETCH NEXT FROM DataName INTO @name WHILE (@@FETCH_STATUS = 0) BEGIN DECLARE tb CURSOR local FOR SELECT N'kill '+CAST(spid AS varchar) FROM master..sysprocesses WHERE dbid=db_id(@name) OPEN tb FETCH next FROM tb INTO @s WHILE @@FETCH_STATUS=0 BEGIN EXEC(@s) FETCH NEXT FROM tb INTO @s END CLOSE tb DEALLOCATE tb FETCH NEXT FROM DataName INTO @name END CLOSE DataName DEALLOCATE DataName END ELSE BEGIN DECLARE tb CURSOR local FOR SELECT N'kill '+CAST(spid AS varchar) FROM master..sysprocesses WHERE dbid=db_id(@Dname) OPEN tb FETCH next FROM tb INTO @s WHILE @@FETCH_STATUS=0 BEGIN EXEC(@s) FETCH NEXT FROM tb INTO @s END CLOSE tb DEALLOCATE tb END END