Mudanças entre as edições de "Fecha conexões ativas com o Banco de Dados"

De MSTECH wiki
Ir para: navegação, pesquisa
 
Linha 1: Linha 1:
 
Este script tem por finalidade fechar todas as conexões ativas à um determinado banco de dados. Útil quando existe a necessidade de se ter exclusividade de acesso ao banco de dados, como no caso de executar o '''restore''' de uma dada base.
 
Este script tem por finalidade fechar todas as conexões ativas à um determinado banco de dados. Útil quando existe a necessidade de se ter exclusividade de acesso ao banco de dados, como no caso de executar o '''restore''' de uma dada base.
  
<syntaxhighlight lang="sql" line="1" >
+
<syntaxhighlight lang="sql">
 
USE master
 
USE master
 
GO
 
GO

Edição atual tal como às 16h22min de 23 de agosto de 2016

Este script tem por finalidade fechar todas as conexões ativas à um determinado banco de dados. Útil quando existe a necessidade de se ter exclusividade de acesso ao banco de dados, como no caso de executar o restore de uma dada base.

USE master
GO
declare @spid int
declare @db_name varchar(100)
set @db_name = 'NomeBanco' -- coloque o nome do banco de dados aqui
declare spid cursor for
select spid
from master.dbo.sysprocesses(nolock)
where dbid = db_id(@db_name) and spid > 50
union
select distinct request_session_id
from sys.dm_tran_locks (nolock)
where resource_database_id = db_id(@db_name) and request_session_id > 50
open spid
fetch next from spid into @spid
while @@fetch_status = 0
begin
exec ('kill ' + @spid)
fetch next from spid into @spid
end