Pessoal,
Quem nunca teve o terrível desprazer de fazer um restore em uma base SQL Server e receber o erro que não foi possível fazer porque o banco de dados estava em uso. Ai você pede para todo mundo fechar as conexões e recebe o mesmo erro. Bom, pesquisei na Internet e achei este script abaixo. Já usei no SQL Server 2008 e funcionou. Nas demais versões não sei se funciona.
Fica ai a dica.
Abraços.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
use master declare @vcdbname varchar(50) /* @vcdbname => Variável para colocar o nome da base de dados */ Set @vcdbname = 'BancoTESTE' set nocount on declare Users cursor for select spid from master..sysprocesses where db_name(dbid) = @vcdbname declare @spid int, @str varchar(255) open users fetch next from users into @spid while @@fetch_status <> -1 begin if @@fetch_status = 0 begin print @spid set @str = 'kill ' + convert(varchar, @spid) exec (@str) end fetch next from users into @spid end deallocate users |