sp_attach_db (Transact-SQL)
Aktualisiert: 12. Dezember 2006
Fügt eine Datenbank an einen Server an.
Wichtig: |
---|
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). |
Hinweis: |
---|
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. |
Sicherheitshinweis: |
---|
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. |
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.Hinweis: 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.
Hinweis: 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.
Hinweis: |
---|
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 |
|
05. Dezember 2005 |
|