«

»

Jan
13

Microsoft SQL Datenbank Offline Schalten

Folgendes SQL Script killt ALLE Prozesse die mit einer bestimmten SQL-Datenbank verbunden sind und schaltet die Datenbank offline.

Da ich gerade nicht weiß wie man einen Datenbank namen als Objekt (DECLARE .. database) definiert muss man den Datenbanknamen zweimal angeben, einmal oben bei “SET @db..” und einmal unten bei “ALTER DATABASE”.

USE [master]

DECLARE @spid	int
DECLARE @db		varchar(128)

SET @db = '--DatenbankName--'

DECLARE CUR CURSOR FOR
SELECT spid FROM sysprocesses WHERE dbid = DB_ID(@db) AND hostname <> '' AND spid <> @@SPID 

OPEN CUR

FETCH NEXT FROM CUR INTO @spid

WHILE @@FETCH_STATUS = 0
BEGIN
	EXECUTE ('KILL ' + @spid)
	FETCH NEXT FROM CUR INTO @spid
END

CLOSE CUR
DEALLOCATE CUR

SELECT @db AS 'DB', DATABASEPROPERTYEX (@db, 'Status') AS 'State before'

ALTER DATABASE --DatenbankName-- SET OFFLINE

SELECT @db AS 'DB', DATABASEPROPERTYEX (@db, 'Status') AS 'State after'

Hinterlasse eine Antwort

Ihre E-Mail-Adresse wird nicht veröffentlicht.

Sie können diese HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

What is 2 + 2 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)