Eliminar todas las conexiones activas de una base de datos

Posted on
  • martes, 14 de diciembre de 2010
  • by
  • Román
  • in
  • Etiquetas: , , , ,
  • CREATE PROCEDURE dbo.KillConexiones
    @dbName SYSNAME
    AS
    BEGIN
    SET NOCOUNT ON

    DECLARE @spid INT,
    @cnt INT,
    @sql VARCHAR(255)

    SELECT @spid = MIN(spid), @cnt = COUNT(*)
    FROM master..sysprocesses
    WHERE dbid = DB_ID(@dbname)
    AND spid != @@SPID

    PRINT 'Eliminando '+RTRIM(@cnt)+' procesos.'

    WHILE @spid IS NOT NULL
    BEGIN
    PRINT 'Eliminando Proceso '+RTRIM(@spid)
    SET @sql = 'KILL '+RTRIM(@spid)
    EXEC(@sql)
    SELECT @spid = MIN(spid), @cnt = COUNT(*)
    FROM master..sysprocesses
    WHERE dbid = DB_ID(@dbname)
    AND spid != @@SPID
    PRINT RTRIM(@cnt)+' Procesos por eliminar.'
    END
    END
    GO

    Hugo Román Bernachea
    Mail de contacto: SQLServer777@gmail.com

    Microsoft Certified DBA
    Microsoft Certified Trainer
    Twitter: @bernachea