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 Sie die Datenbank umbenennen, welche Fehler dabei auftreten können und wie Sie sie beheben 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 noch 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

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"

Methode 2: Verwenden von SSMS zum Umbenennen der SQL Server-Datenbank

Eine weitere einfachste Möglichkeit, eine Datenbank umzubenennen, 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 werde auslaufen.

Methode 4: Verwenden Sie zum Trennen und Anhängen den SQL Server umbenennen

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

Trennen der Datenbank indem Sie den folgenden Code ausführen:

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: \ Programme \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test.mdf', @ filename2 = N'C: \ Programme \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test_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.

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank, wählen Sie "Aufgabe" dann klicken Sie auf "Ablösen"
  2. Klicken Sie nun auf "OK"
  3. Klicken Sie nun mit der rechten Maustaste auf ., um die Datenbank anzuhängen "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".
  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.

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 die gleiche 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 Batches ist eine Ausnahme aufgetreten.
(Microsoft.SqlServer.ConnectionInfo)
Die Datenbank konnte nicht ausschließlich für die Ausführung des Vorgangs gesperrt werden. (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.

  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 exklusiv 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.
  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"
  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 dieser: "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 alle ausstehenden 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“ indem Sie die folgenden Befehle verwenden.
  2. Ändern Sie den Datenbanktestsatz single_user mit sofortigem Rollback go EXEC sp_renamedb 'test', 'test_cases' go ändern Sie die Datenbank 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. "

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.

Facebook Twitter Google Plus Pinterest