sql >> Base de Datos >  >> RDS >> Sqlserver

DBA:cómo eliminar todos los procesos de la base de datos en SQL Server

El siguiente código se puede usar para eliminar todos los procesos de la base de datos de SQL Server. El código se puede utilizar en situaciones en las que no se pueden realizar cambios en la base de datos si se está ejecutando algún proceso en la base de datos, como cambiar el nombre de la base de datos si se está ejecutando algún proceso en esa base de datos.

USE MASTER
GO
DECLARE @DatabaseName AS VARCHAR(500)
-->Provide the DataBaseName for which want to Kill all processes.
SET @DatabaseName='YourDataBaseName'
DECLARE @Spid INT
DECLARE KillProcessCur CURSOR FOR
  SELECT spid
  FROM   sys.sysprocesses
  WHERE  DB_NAME(dbid) = @DatabaseName
OPEN KillProcessCur
FETCH Next FROM KillProcessCur INTO @Spid
WHILE @@FETCH_STATUS = 0
  BEGIN
      DECLARE @SQL VARCHAR(500)=NULL
      SET @SQL='Kill ' + CAST(@Spid AS VARCHAR(5))
      EXEC (@SQL)
      PRINT 'ProcessID =' + CAST(@Spid AS VARCHAR(5))
            + ' killed successfull'
      FETCH Next FROM KillProcessCur INTO @Spid
  END
CLOSE KillProcessCur
DEALLOCATE KillProcessCur