Freigeben über


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.

Wichtiger HinweisWichtig

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.

SicherheitshinweisSicherheitshinweis

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.

Themenlink (Symbol)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 Pfades). physical_name ist vom Datentyp nvarchar(260) und hat den Standardwert NULL.

    HinweisHinweis

    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 2008 R2-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.

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.

HinweisHinweis

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 AdventureWorks2008R2 getrennt und eine Datei aus AdventureWorks2008R2 an den aktuellen Server angefügt.

USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2008R2';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2008R2', 
    @physname = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_Data.mdf';