Déconnecter les utilisateurs d'une base de données SQL Serveur.

SQL Serveur

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
Par Christophe HIRON
06 décembre 2006