Wie benenne ich eine SQL Server-Datenbank um?
Um die Datenbank umzubenennen, müssen Sie eine der unten beschriebenen Methoden befolgen. Zunächst müssen wir eine Datenbank erstellen, die umbenannt werden muss.
Datenbankerstellung:
Wählen Sie eine Datenbank in Ihrem SQL Server Management System (SSMS). Wenn Sie keine haben, können Sie eine erstellen, indem Sie dieses Verfahren befolgen.
- Klicken Sie mit der rechten Maustaste auf “Datenbank” in dem “Objekt-Explorer” und wählen Sie die Option “Neue Datenbank”
- Im linken Bereich wird ein Fenster angezeigt
- wählen “Allgemeines” Geben Sie den Datenbanknamen in das rechte Fenster ein und drücken Sie “OK”. Die Datenbank wird erstellt
Es gibt mehrere Methoden zum Umbenennen einer Datenbank in SQL Server, die im Folgenden zusammen mit Versionen, die von einer bestimmten Methode unterstützt werden, ausführlich erläutert werden. Später werden wir auch Fehler diskutieren, die beim Umbenennen der Datenbank auftreten, und Verfahren zu deren Behebung.
Methode 1: Verwenden der SSMS-Umbenennungsoption zum Umbenennen der SQL Server-Datenbank
Dies ist der einfachste Weg, eine Datenbank umzubenennen. Sie müssen so vorgehen, um dies zu tun.
- Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Datenbanknamen
- Wählen “umbenennen”Geben Sie den Datenbanknamen ein und drücken Sie “eingeben”
Methode 2: Verwenden von SSMS zum Umbenennen der SQL Server-Datenbank
Eine andere einfachste Möglichkeit, eine Datenbank umzubenennen, ist genau wie das Umbenennen eines Ordners in den Fenstern. Sie müssen so weitermachen, um dies zu tun. Klicken Sie auf die Datenbank, um sie wie Windows-Ordner umzubenennen.
Methode 3: Verwenden von T-SQL zum Umbenennen der SQL Server-Datenbank
Für SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 und 2017 funktioniert dieser Befehl. Führen Sie die folgende Anweisung aus.
ALTER DATABASE [test] MODIFY NAME = [test_cases]
Die Ausgabe wird sein “Der Datenbankname ‘test_cases’ wurde festgelegt.” Wie in der Abbildung unten zu sehen.
Sie können den folgenden T-SQL-Befehl verwenden, um den Namen der Datenbank zu ändern, wenn Sie SQL Server 2000 verwenden. Mit SQL 2005, 2008, 2008R2, 2012, 2014, 2016 und 2017 funktioniert dies immer noch, aber zu einem bestimmten Zeitpunkt Microsoft behauptet, es wird auslaufen.
Methode 4: Benennen Sie den SQL Server mit Trennen und Anhängen um
Mit der Funktion zum Trennen und Anhängen von SQL Server können Sie zuerst die Datenbank entfernen und der Datenbank einen anderen Namen zuweisen, wenn Sie die Datenbank erneut anhängen. Die folgenden T-SQL-Befehle können dazu verwendet werden
Datenbank trennen durch Ausführen des folgenden Codes:
EXEC sp_detach_db 'test', 'true'
Die Ausgabe wird so sein
Anhängen der Datenbank.
EXEC sp_attach_db @dbname = N'test', @filename1 = N'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAtest.mdf', @filename2 = N'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATAtest_log.ldf';
Die Ausgabe wird sein:
Verwenden von SSMS zum Trennen und erneuten Anhängen von Datenbanken
Dies kann auch mithilfe von SSMS erreicht werden, indem die folgenden Schritte ausgeführt werden.
- Klicken Sie mit der rechten Maustaste auf die Datenbank und wählen Sie “Aufgabe” dann klicken Sie auf “Ablösen”
- Klicken Sie nun auf “OK”
- Um die Datenbank anzuhängen, klicken Sie mit der rechten Maustaste auf “Datenbanken” im “Objekt-Explorer” und klicken Sie auf “Anfügen”. Ein Bildschirm wird angezeigt. Klicken Sie auf Hinzufügen. Ein weiteres Fenster mit Datenbanknamen wird angezeigt (siehe unten) “Prüfung”.
- Wir möchten es jedoch als geänderten Datenbanknamen hinzufügen “Test_cases” also tippe “Testfall” im “Anhängen als” Box. Jetzt so. Dadurch wird Ihre Datenbank umbenannt.
Darüber hinaus werden Fehler besprochen, die beim Umbenennen der Datenbank auftreten können. Sie benötigen exklusiven Zugriff auf die Datenbank, um die Datenbank umzubenennen. Dadurch wird sichergestellt, dass die Datenbank keine anderen Datenbankverbindungen hat. Ist dies jedoch nicht der Fall, kann dies zu Fehlern führen (siehe unten). Der Fehler kann sogar auftreten, wenn wir versehentlich ein anderes Fenster mit demselben Datenbanknamen öffnen, das umbenannt werden muss.
Fehler, die beim Umbenennen der Datenbank über SSMS und beim Ausführen der Abfrage auftreten:
Diese beiden unten genannten Fehler haben zwei unterschiedliche Ansichten, da sie beim Umbenennen der Datenbank mit zwei verschiedenen Methoden auftreten. Fehler 1 tritt beim Umbenennen der Datenbank mit SSMS auf, und der zweite Fehler tritt beim Umbenennen der Datenbank mit Abfrage auf. Beide Fehler zeigen dieselbe Meldung “Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden”, Dies bedeutet, dass der Fehler auftritt, da der Benutzer keinen exklusiven Zugriff auf die Datenbank erhält, um eine Datenbank umzubenennen. Um die Datenbank umzubenennen, müssen wir die Datenbank auf „Einzelbenutzermodus“.
Fehler 1: Beim Umbenennen der Datenbank über SSMS tritt ein Fehler auf
„Test kann nicht umbenannt werden. (ObjectExplorer)
Zusätzliche Information:
Umbenennung für Datenbanktest fehlgeschlagen (Microsoft.SqlServer.Smo)
Beim Ausführen einer Transact-SQL-Anweisung oder eines Batch-Stapels ist eine Ausnahme aufgetreten.
(Microsoft.SqlServer.ConnectionInfo)
Die Datenbank konnte nicht ausschließlich gesperrt werden, um den Vorgang auszuführen. (Microsoft SQL Server, Fehler: 5030) ”
Fehler 2: Beim Umbenennen der Datenbank mithilfe der Abfrage tritt ein Fehler auf
“Nachricht 5030, Ebene 16, Status 2, Zeile 2. Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden.”
Zunächst werden wir die oben genannten Fehlermeldungen reproduzieren, um zu verstehen, in welchem Szenario sie auftreten und wie sie behoben werden können.
- Klicken Sie mit der rechten Maustaste auf den Datenbanknamen von “Objekt-Explorer”
- Wählen Sie Umbenennen und geben Sie den Datenbanknamen ein und drücken Sie “eingeben” Wenn es funktioniert, ist es in Ordnung, aber wenn es nicht funktioniert und zu einem solchen Fehler führt “Umbenennung nicht möglich
(ObjectExplorer). Die Datenbank konnte nicht ausschließlich gesperrt werden, um den Vorgang auszuführen. (Microsoft SQL Server, Fehler: 5030) ” Wie in der folgenden Abbildung dargestellt, haben Sie keinen exklusiven Zugriff auf die Datenbank, um eine Datenbank umzubenennen. - Dieser Fehler bedeutet, dass der SQL Server die Umbenennung der Datenbank erst zulässt, wenn sie sich in befindet “Einzelbenutzermodus”.
- Sie benötigen also exklusiven Zugriff auf die Datenbank, um eine Datenbank umzubenennen. Um dies zu verstehen, öffnen Sie ein anderes Abfragefenster und wählen Sie die Datenbank aus “Prüfung”
- Versuchen Sie nun im ersten Fenster, den folgenden Code auszuführen.
ALTER DATABASE [test] MODIFY NAME = [test_cases]
- Dies führt jedoch zu einer Fehlermeldung wie der folgenden: “Nachricht 5030, Ebene 16, Status 2, Zeile 2. Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden.”
Lösung:
Dadurch wird die Datenbank so konfiguriert, dass ausstehende Transaktionen zurückgesetzt und festgelegt werden “Einzelbenutzermodus” und dann zurück in “Mehrbenutzermodus”.
- Um dies zu beheben, müssen wir alle anderen Fenster schließen, in denen derselbe Datenbankname verwendet wird, oder die Datenbank einrichten “Einzelbenutzermodus” mit den folgenden Befehlen.
Alter database test set single_user with rollback immediate go EXEC sp_renamedb 'test', 'test_cases' go alter database test_cases set multi_user go
- Die Ausgabe sieht folgendermaßen aus: „Nicht qualifizierte Transaktionen werden zurückgesetzt. Geschätzter Rollback-Abschluss: 0%. Nicht qualifizierte Transaktionen werden zurückgesetzt. Geschätzter Rollback-Abschluss: 100%. Der Datenbankname ‘test_cases’ wurde festgelegt. “
Fazit:
Dies sind mehrere Möglichkeiten, die Datenbank umzubenennen. Wenn ein Weg für Sie nicht funktioniert. Sie können zu einem anderen gehen. Beachten Sie, dass das Ändern von Datenbanknamen auf diese Weise die Datenbank einfach umbenennt. Die “physischen Dateien” haben immer noch den gleichen Namen. Wie wir in der folgenden Abbildung sehen können, haben wir den Datenbanknamen von geändert “Prüfung” zu “Test_cases” aber am physischen Ort blieb es das gleiche.
Der einfachste Ansatz ist daher die Verwendung von Lösung 4, wenn Sie auch den Dateinamen ändern möchten. Sie müssen zuerst den Namen der physischen Dateien ändern, bevor Sie die Dateien erneut anhängen, und dann die umbenannten Dateien angeben, wenn Sie die erneute Zuordnung vornehmen.
Darüber hinaus müssen Sie nicht nur die Namen der Datenbanken ändern, sondern auch prüfen, ob Ihr Anwendungscode Verweise auf den Datenbanknamen enthält. Dies kann entweder innerhalb von SQL Server oder außerhalb von SQL Server erfolgen.