
Cette procédure permet de déconnecter tous les utilisateurs connectés à une base de donnée (Sauf soit même bien sur)
CREATE procedure sp_Userkill
@DbName varchar(255)
AS
declare @ErrMsg varchar(255)
if not exists (select top 1 Name from master..sysdatabases where name = @DbName) begin
set @ErrMsg = 'Database '+@Dbname+' does not exists '
Raiserror(@ErrMsg,16,1)
return
end
declare @Kill varchar(255)
declare #Cur cursor for
select 'kill '+convert(varchar(5),spid) +' -- '+p.loginame from master..sysprocesses p inner join master..sysdatabases d on p.dbid = d.dbid
where d.name = @DbName
open #Cur
fetch next from #Cur into @Kill
while @@fetch_status = 0 begin
exec (@Kill)
fetch next from #Cur into @Kill
end
close #Cur
deallocate #cur
GO