Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

DBA – So beenden Sie alle Datenbankprozesse auf SQL Server

Der folgende Code kann verwendet werden, um alle Prozesse für die SQL Server-Datenbank zu beenden. Der Code kann in Situationen verwendet werden, in denen Änderungen an der Datenbank nicht durchgeführt werden können, wenn ein Prozess auf der Datenbank läuft, wie z. B. das Umbenennen einer Datenbank nicht durchgeführt werden kann, wenn irgendein Prozess auf dieser Datenbank läuft.

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