Ich benutze immer folgendes:
USE master; -- get out of dbname myself
GO
-- kick all other users out:
ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- prevent sessions from re-establishing connection:
ALTER DATABASE [dbname] SET OFFLINE;
Manchmal kann dies eine Weile dauern, und manchmal ist es blockiert, weil Sie derjenige sind, der es ausführt, und Sie haben eine aktive Verbindung zur Datenbank . Suchen Sie nach anderen Abfragefenstern, die möglicherweise denselben Datenbankkontext aufweisen. Dies kann geöffnete Dialogfelder, Objekt-Explorer, IntelliSense, Jobs mit langer Laufzeit usw. umfassen.
Wenn ich meine Änderungen an der Konfiguration dieser Datenbank vorgenommen habe, gehe ich einfach folgendermaßen vor:
ALTER DATABASE [dbname] SET ONLINE;
ALTER DATABASE [dbname] SET MULTI_USER;
Manchmal muss die Datenbank online sein, damit ich diese Datenbank bearbeiten kann. Manchmal muss ich sie also im Einzelbenutzermodus belassen und Folgendes ausführen:
ALTER DATABASE [dbname] SET ONLINE;
GO
USE [dbname];
Jetzt kann ich meine Änderungen vornehmen und dann, wenn andere Benutzer eine Verbindung herstellen können, einfach:
ALTER DATABASE [dbname] SET MULTI_USER;