sp_attach_db (Transact-SQL)

Aktualisiert: 12. Dezember 2006

Fügt eine Datenbank an einen Server an.

ms179877.note(de-de,SQL.90).gifWichtig:
Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Es empfiehlt sich, stattdessen CREATE DATABASE database_name FOR ATTACH zu verwenden. Weitere Informationen finden Sie unter CREATE DATABASE (Transact-SQL).
ms179877.note(de-de,SQL.90).gifHinweis:
Verwenden Sie CREATE DATABASE database_name FOR ATTACH_REBUILD_LOG, um mehrere Protokolldateien neu zu erstellen, wenn eine oder mehrere Dateien einen neuen Speicherort aufweisen.
ms179877.security(de-de,SQL.90).gifSicherheitshinweis:
Das Anfügen oder Wiederherstellen von Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen wird nicht empfohlen. Solche Datenbanken können bösartigen Code enthalten, die unbeabsichtigten Transact-SQL-Code ausführen oder Fehler verursachen können, indem das Schema oder die physikalische Datenbankstruktur geändert wird. Bevor Sie eine Datenbank aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie DBCC CHECKDB für die Datenbank auf einem Nichtproduktionsserver aus. Untersuchen Sie außerdem den Code, z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code, in der Datenbank.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_attach_db [ @dbname= ] 'dbname'
        , [ @filename1= ] 'filename_n' [ ,...16 ] 

Argumente

  • [ @dbname= ] **'**dbnam '
    Der Name der Datenbank, die an den Server angefügt werden soll. Der Name muss eindeutig sein. dbname ist vom Datentyp sysname und hat den Standardwert NULL.
  • [ @filename1= ] 'filename_n'
    Der physikalische Name einer Datenbankdatei (einschließlich des Pfads). filename_n ist vom Datentyp nvarchar(260) und hat den Standardwert NULL. Sie können bis zu 16 Dateinamen angeben. Die Parameternamen beginnen mit @filename1 und werden bis @filename16 inkrementiert. Die Liste der Dateinamen muss mindestens die primäre Datei beinhalten. In der primären Datei sind die Systemtabellen, die auf andere Dateien in der Datenbank zeigen, enthalten. In der Liste müssen außerdem alle Dateien enthalten sein, die nach dem Trennen der Datenbank verschoben wurden.

    ms179877.note(de-de,SQL.90).gifHinweis:
    Dieses Argument entspricht dem FILENAME-Parameter der CREATE DATABASE-Anweisung. Weitere Informationen finden Sie unter CREATE DATABASE (Transact-SQL).

    In SQL Server 2005-Datenbankmodul werden alle Volltextdateien, die Teil der angefügten Datenbank sind, mit der Datenbank angefügt. Wenn Sie einen neuen Pfad für den Volltextkatalog angeben möchten, können Sie die Katalogdatei angeben, indem Sie einen Verzeichnisnamen ohne einen Dateinamen bereitstellen. Weitere Informationen finden Sie unter Anfügen und Trennen von Volltextkatalogen.

    ms179877.note(de-de,SQL.90).gifHinweis:
    Es ist nicht möglich, einen Volltextkatalog an das Stammverzeichnis anzufügen.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Die gespeicherte Prozedur sp_attach_db sollte nur für Datenbanken ausgeführt werden, die zuvor mit einem expliziten sp_detach_db-Vorgang vom Datenbankserver getrennt wurden, oder für kopierte Datenbanken. Wenn Sie mehr als 16 Dateien angeben müssen, verwenden Sie CREATE DATABASE database_name FOR ATTACH oder CREATE DATABASE database_name FOR_ATTACH_REBUILD_LOG. Weitere Informationen finden Sie unter CREATE DATABASE (Transact-SQL).

Wird für eine Datei kein Pfad angegeben, wird davon ausgegangen, dass sie sich am zuletzt bekannten Speicherort befindet. Wenn Sie eine Datei an einem anderen Speicherort verwenden möchten, müssen Sie den neuen Speicherort angeben.

Eine Datenbank, die in einer neueren Version von SQL Server erstellt wurde, kann in früheren Versionen nicht angefügt werden.

ms179877.note(de-de,SQL.90).gifHinweis:
Ein Datenbanksnapshot kann nicht getrennt oder angefügt werden.

Berücksichtigen Sie Folgendes, wenn Sie eine replizierte Datenbank anfügen, die kopiert statt getrennt wurde:

  • Wenn Sie die Datenbank an die gleiche Serverinstanz und -version wie die ursprüngliche Datenbank anfügen, sind keine weiteren Schritte erforderlich.
  • Wenn Sie die Datenbank an die gleiche Serverinstanz mit einer aktualisierten Version anfügen, müssen Sie sp_vupgrade_replication ausführen, um die Replikation zu aktualisieren, nachdem der Anfügevorgang abgeschlossen wurde.
  • Wenn Sie die Datenbank an eine andere Serverinstanz unabhängig von der Version anfügen, müssen Sie sp_removedbreplication ausführen, um die Replikation zu entfernen, nachdem der Anfügevorgang abgeschlossen wurde.

Berechtigungen

Informationen zur Handhabung von Berechtigungen, wenn eine Datenbank angefügt wird, finden Sie unter CREATE DATABASE (Transact-SQL).

Beispiele

Im folgenden Beispiel werden Dateien von AdventureWorks an den aktuellen Server angefügt.

EXEC sp_attach_db @dbname = N'AdventureWorks', 
    @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf', 
    @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_log.ldf';

Siehe auch

Verweis

sp_detach_db (Transact-SQL)
sp_helpfile (Transact-SQL)
sp_removedbreplication (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)

Andere Ressourcen

Trennen und Anfügen von Datenbanken
Sichern von Daten- und Protokolldateien
Anfügen und Trennen von Volltextkatalogen

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Neuer Inhalt:
  • Der Abschnitt "Hinweise" wurde im Dokument mit der Information aktualisiert, dass eine Datenbank, die von einer neueren Version von SQL Server erstellt wurde, in früheren Versionen nicht angefügt werden kann.

05. Dezember 2005

Neuer Inhalt:
  • Der Sicherheitshinweis wurde hinzugefügt.