martes, 11 de marzo de 2008

Desconectar todos los usuarios de una BD en SQL Server

USE master
DECLARE curkillproc
CURSOR FOR
SELECT spid,dbs.name AS dbname
FROM master..sysprocesses pro, master..sysdatabases dbs
WHERE pro.dbid = dbs.dbid
AND dbs.name = 'NOMBRE DE LA BD'
FOR READ ONLY
DECLARE @varspid AS integer
DECLARE @vardbname AS varchar(256)
DECLARE @numUsers AS integer
SET @numUsers = 0
OPEN curkillproc
FETCH NEXT FROM curkillproc
INTO @varspid, @vardbname
WHILE @@fetch_status = 0
BEGIN
EXEC('kill ' + @varspid)
SET @numUsers = @numUsers + 1
FETCH NEXT FROM curkillproc INTO @varspid, @vardbname
END
CLOSE curkillproc
DEALLOCATE curkillproc
SELECT @numUsers as NumUsersDisconnected

4 comentarios:

carlos_rocker dijo...

Muchas gracias,

Es de gran utilidad.

roedecker dijo...

¡Gracias!

Unknown dijo...

Muchas gracias sirvio de maravilla

Jerson dijo...

Perfecto y muy claro, muchas gracias.