sp_attach_single_file_db (Transact-SQL)
Fügt eine Datenbank mit nur einer Datendatei an den aktuellen Server an. sp_attach_single_file_db kann nicht mit mehreren Datendateien verwendet werden.
Wichtig |
---|
Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion 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). Verwenden Sie diese Prozedur nicht für eine replizierte Datenbank. |
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, der möglicherweise unbeabsichtigten Transact-SQL-Code ausführt oder Fehler verursacht, indem er das Schema oder die physische Datenbankstruktur ändert. 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_single_file_db [ @dbname= ] 'dbname'
, [ @physname= ] 'physical_name'
Argumente
[ @dbname= ] 'dbname'
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.[ @physname= ] 'physical_name'
Der physische Name der Datenbankdatei, einschließlich des Pfads. physical_name ist vom Datentyp nvarchar(260) und hat den Standardwert NULL.Hinweis Dieses Argument ist dem FILENAME-Parameter der CREATE DATABASE-Anweisung zugeordnet. Weitere Informationen finden Sie unter CREATE DATABASE (Transact-SQL).
Wenn Sie eine SQL Server 2005-Datenbank mit Volltextkatalogdateien an eine SQL Server 2012-Serverinstanz anfügen, werden die Katalogdateien von ihrem vorherigen Speicherort aus zusammen mit den anderen Datenbankdateien angefügt. Dies entspricht der Vorgehensweise für SQL Server 2005. Weitere Informationen finden Sie unter Aktualisieren der Volltextsuche von SQL Server 2005.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Keine
Hinweise
sp_attach_single_file_db sollte nur für Datenbanken verwendet werden, die zuvor mithilfe eines expliziten sp_detach_db-Vorgangs vom Server getrennt wurden, oder für kopierte Datenbanken.
sp_attach_single_file_db kann nur für Datenbanken mit einer einzelnen Protokolldatei verwendet werden. Wenn sp_attach_single_file_db die Datenbank an den Server anfügt, wird eine neue Protokolldatei erstellt. Wenn die Datenbank schreibgeschützt ist, wird die Protokolldatei an ihrem bisherigen Speicherort erstellt.
Hinweis |
---|
Ein Datenbankmomentaufnahme kann nicht getrennt oder angefügt werden. |
Verwenden Sie diese Prozedur nicht für eine replizierte Datenbank.
Berechtigungen
Informationen zum Behandeln von Berechtigungen beim Anfügen von Datenbanken finden Sie unter CREATE DATABASE (Transact-SQL).
Beispiele
Im folgenden Beispiel wird AdventureWorks2012 getrennt und eine Datei aus AdventureWorks2012 an den aktuellen Server angefügt.
USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2012';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2012',
@physname =
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';
Siehe auch
Verweis
Gespeicherte Systemprozeduren (Transact-SQL)