SQL-Server Fehlerbehebung: Datenbank im Einzelbenutzermodus
[su_note]Achtung: Benutzung der SQL-Befehle auf eigene Verantwortung![/su_note]
Situation
Durch eine fehlgeschlagene Kopier-Aktion befand sich eine Datenbank im Einzelbenutzermodus. Sie ließ sich nicht mehr administrieren. Erkennbar war dies durch den Eintrag Einzelbenutzermodus im Objekt-Explorer des Microsoft SQL Server Management Studio. Jeder weitere Versuch scheiterte, da die Datenbank in diesem Einzelbenutzermodus bereits mit einem anderen Anwender verbunden war.
Umgebung
Microsoft SQL Server 2008R2
Lösung
Zunächst muss derjenige blockierende Datenbankuser herausgefunden werden. Dies kann erfolgen über folgenden SQL-Befehl:
select
spid, d.name, d.dbid, login_time, nt_domain, nt_username, loginame
from
sysprocesses p
inner join sysdatabases d on p.dbid = d.dbid
where
d.name = '<HIER NAMEN DER DATENBANK EINTRAGEN>'
go
Das Ergebnis zeigt den User an, der im Moment der Ausführung dieses Befehls mit der Datenbank verbunden war. Diese Verbindung blockiert die Administration.
Die Verbindung muss nun getrennt werden. Das geschieht über folgenden Befehl:
kill <WERT AUS SPALTE spid HIER EINTRAGEN> go
Anschließend kann der Modus verändert werden:
alter database <HIER NAMEN DER DATENBANK EINTRAGEN> set MULTI_USER go
Ergebnis
Im Objekt-Explorer des Microsoft SQL Server Management Studio den Eintrag Datenbanken auswählen und die Ansicht mit Taste F5 aktualisieren. Nun sollte die Datenbank wieder wie gewohnt dargestellt werden.