Trennen einer Datenbank

Gilt für:SQL Server

In diesem Artikel erfahren Sie, wie Sie eine Datenbank in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL getrennt wird. Die getrennten Dateien werden nicht gelöscht und verbleiben im Dateisystem. Die Dateien können mithilfe der Option CREATE DATABASE ... FOR ATTACH oder FOR ATTACH_REBUILD_LOG erneut angefügt werden. Sie können auch auf einen anderen Server verschoben und an eine Instanz mit der gleichen oder einer neueren Version angefügt werden.

Begrenzungen

Eine Liste der Einschränkungen finden Sie unter Anfügen und Trennen von Datenbanken (SQL Server).

Berechtigungen

Hierfür ist die Mitgliedschaft in der festen Datenbankrolle db_owner erforderlich.

Verwenden von SQL Server Management Studio

Vor dem Verschieben einer Datenbank

Wenn Sie eine Datenbank verschieben, bevor Sie sie von ihrer vorhandenen SQL Server-Instanz trennen, verwenden Sie die Seite Datenbankeigenschaften, um die Dateien zu überprüfen, die der Datenbank und ihren aktuellen Speicherorten zugeordnet sind.

  1. Stellen Sie in SQL Server Management Studio über den Objekt-Explorer eine Verbindung mit der SQL Server-Datenbank-Engine-Instanz her und erweitern Sie anschließend die Instanz.

  2. Erweitern Sie Datenbanken, und wählen Sie den Namen der zu trennenden Benutzerdatenbank aus.

  3. Klicken Sie mit der rechten Maustaste auf den Datenbanknamen und dann auf Eigenschaften. Navigieren Sie zur Seite Dateien, und überprüfen Sie die Einträge in der Tabelle Datenbankdateien:.

Berücksichtigen Sie alle Dateien, die der Datenbank zugeordnet sind, bevor Sie diese trennen, verschieben und anfügen. Fahren Sie dann mit den Trennenschritten im nächsten Abschnitt fort. Weitere Informationen zum Anfügen der Datenbank am neuen Speicherort finden Sie unter Anfügen einer Datenbank.

Trennen einer Datenbank

  1. Stellen Sie in SQL Server Management Studio über den Objekt-Explorer eine Verbindung mit der SQL Server-Datenbank-Engine-Instanz her und erweitern Sie anschließend die Instanz.

  2. Erweitern Sie Datenbanken, und wählen Sie den Namen der zu trennenden Benutzerdatenbank aus.

  3. Klicken Sie mit der rechten Maustaste auf den Datenbanknamen, zeigen Sie auf Tasks, und klicken Sie dann auf Trennen. Das Dialogfeld Datenbank trennen wird angezeigt.

    • Zu trennende Datenbanken: Führt die zu trennenden Datenbanken auf.

    • Database Name: Zeigt den Namen der zu trennenden Datenbank an.

    • Verbindungen löschen: Trennt die Verbindungen zu der angegebenen Datenbank.

      Hinweis

      Sie können eine Datenbank mit aktiven Verbindungen nicht trennen.

    • Statistiken aktualisieren: Standardmäßig werden durch den Trennvorgang beim Trennen der Datenbank die veralteten Optimierungsstatistiken beibehalten. Um die vorhandenen Optimierungsstatistiken zu aktualisieren, aktivieren Sie dieses Kontrollkästchen.

    • Volltextkataloge behalten: Standardmäßig werden während des Trennvorgangs alle der Datenbank zugeordneten Volltextkataloge beibehalten. Um sie zu entfernen, deaktivieren Sie das Kontrollkästchen Volltextkataloge beibehalten . Diese Option wird nur angezeigt, wenn Sie ein Upgrade einer Datenbank von SQL Server 2005 (9.x) durchführen.

    • Status: Zeigt für den Status einen der folgenden Werte an: Bereit oder Nicht bereit.

    • Message: In der Spalte Message können folgende Informationen zur Datenbank angezeigt werden:

      • Wenn eine Datenbank an einer Replikation beteiligt ist, hat der Status den Wert Nicht bereit , und unter Meldung wird Die Datenbank wurde repliziertangezeigt.

      • Wenn eine Datenbank über eine oder mehrere aktive Verbindungen verfügt, weist der Status den Wert Nicht bereit auf, und in der Spalte Message wird <>Aktive Verbindung(en) angezeigt. Beispiel: 1 aktive Verbindung(en). Bevor Sie die Datenbank trennen können, müssen Sie durch Klicken auf Verbindungen löschen alle aktiven Verbindungen trennen.

      Um weitere Informationen zu einer Nachricht zu erhalten, klicken Sie auf den Hyperlinktext, um den Aktivitätsmonitor zu öffnen.

  4. Wenn Sie zum Trennen der Datenbank bereit sind, klicken Sie auf OK.

Hinweis

Die jetzt getrennte Datenbank bleibt im Datenbanken -Knoten des Objekt-Explorers sichtbar, bis die Ansicht aktualisiert wird. Sie können die Ansicht jederzeit aktualisieren, indem Sie in den Objekt-Explorer-Bereich klicken und in der Menüleiste Ansicht und dann Aktualisieren auswählen.

Verwenden von Transact-SQL

Vor dem Verschieben einer Datenbank

Wenn Sie eine Datenbank verschieben, bevor Sie sie von ihrer vorhandenen SQL Server-Instanz trennen, verwenden Sie die Systemkatalogansicht sys.database_files, um die Dateien zu überprüfen, die der Datenbank und ihren aktuellen Speicherorten zugeordnet sind. Weitere Informationen finden Sie unter sys.database_files (Transact-SQL).

  1. Klicken Sie in SQL Server Management Studio auf Neue Abfrage, um den Abfrage-Editor zu öffnen.

  2. Kopieren Sie das folgende Transact-SQL-Skript in den Abfrage-Editor, und klicken Sie dann auf Ausführen. Dieses Skript zeigt den Speicherort der physischen Datenbankdateien an. Achten Sie darauf, beim Verschieben der Datenbank über „Trennen“ bzw. „Anfügen“ alle Dateien zu berücksichtigen.

    USE [database_name]
    GO
    
    SELECT type_desc, name, physical_name
    FROM sys.database_files;
    

Berücksichtigen Sie alle Dateien, die der Datenbank zugeordnet sind, bevor Sie diese trennen, verschieben und anfügen. Fahren Sie dann mit den Trennenschritten im nächsten Abschnitt fort. Weitere Informationen zum Anfügen der Datenbank am neuen Speicherort finden Sie unter Anfügen einer Datenbank.

Trennen einer Datenbank

  1. Stellen Sie eine Verbindung mit dem Datenbank-Engineher.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen. Im folgenden Beispiel wird die AdventureWorks2022-Datenbank getrennt, wobei die Option skipchecks auf true festgelegt ist. Weitere Informationen finden Sie unter sp_detach_db.

    EXEC sp_detach_db 'AdventureWorks2022', 'true';