Wie benenne ich eine SQL Server-Datenbank um?

Manchmal müssen wir den Datenbanknamen ändern, weil der ursprüngliche Name auf dem Projekt basiert, das für die in der Datenbank gespeicherten Daten irrelevant geworden ist, oder Sie zuvor einen vorübergehenden Namen angegeben haben und ihn jetzt ändern möchten. Unabhängig von den Gründen für das Umbenennen der Datenbank werden in diesem Artikel Möglichkeiten beschrieben, wie die Datenbank umbenannt werden kann, welche Fehler dabei auftreten können und wie diese behoben werden können.

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.

  1. Klicken Sie mit der rechten Maustaste auf “Datenbank” in dem “Objekt-Explorer” und wählen Sie die Option “Neue Datenbank”
  2. Im linken Bereich wird ein Fenster angezeigt
  3. wählen “Allgemeines” Geben Sie den Datenbanknamen in das rechte Fenster ein und drücken Sie “OK”. Die Datenbank wird erstellt
    Datenbankerstellung

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.

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Datenbanknamen
  2. Wählen “umbenennen”Geben Sie den Datenbanknamen ein und drücken Sie “eingeben”
Verwenden der SSMS-Umbenennungsoption zum Umbenennen der SQL Server-Datenbank

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.

Verwenden von SSMS zum Umbenennen der SQL Server-Datenbank

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.

Verwenden von T-SQL zum Umbenennen der SQL Server-Datenbank

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

Datenbank trennen

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:

Anhängen der Datenbank.

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.

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank und wählen Sie “Aufgabe” dann klicken Sie auf “Ablösen”
  2. Klicken Sie nun auf “OK”
    Datenbank trennen
  3. 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”.
    Anhängen der Datenbank
  4. 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.
Umbenennen der Datenbank beim Anhängen

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

Der Fehler tritt beim Umbenennen der Datenbank über SSMS auf. „Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden. (Microsoft SQL Server, Fehler: 5030) ”

„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.”

Der Fehler tritt beim Umbenennen der Datenbank mithilfe einer Abfrage 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.

  1. Klicken Sie mit der rechten Maustaste auf den Datenbanknamen von “Objekt-Explorer”
  2. 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.
    Der Fehler tritt beim Umbenennen der Datenbank über SSMS auf. „Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden. (Microsoft SQL Server, Fehler: 5030) ”
  3. Dieser Fehler bedeutet, dass der SQL Server die Umbenennung der Datenbank erst zulässt, wenn sie sich in befindet “Einzelbenutzermodus”.
  4. 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”
    Ein weiteres Fenster mit derselben Datenbank wird geöffnet, in dem wir diesen Datenbanknamen nicht ändern können
  5. Versuchen Sie nun im ersten Fenster, den folgenden Code auszuführen.
  6. ALTER DATABASE [test] MODIFY NAME = [test_cases]
  7. 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.”
Der Fehler tritt auf, weil SQL Server das Umbenennen der Datenbank erst zulässt, wenn sie sich im Einzelbenutzermodus befindet.

Lösung:

Dadurch wird die Datenbank so konfiguriert, dass ausstehende Transaktionen zurückgesetzt und festgelegt werden “Einzelbenutzermodus” und dann zurück in “Mehrbenutzermodus”.

  1. 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.
  2. 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
  3. 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. “
Konfigurieren der Datenbank, um ausstehende Transaktionen zurückzusetzen und in den Einzelbenutzermodus und dann wieder in den Mehrbenutzermodus zu versetzen.

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.

Wir haben den Datenbanknamen von “test” in “test_cases” geändert, aber am physischen Speicherort ist es immer noch “test”.

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.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *