Freigeben über


sp_attach_single_file_db (Transact-SQL)

Gilt für: SQL Server

Fügt eine Datenbank an, die nur eine Datendatei an den aktuellen Server anfügt. sp_attach_single_file_db kann nicht mit mehreren Datendateien verwendet werden.

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Stattdessen wird die Verwendung von CREATE DATABASE <database_name> FOR ATTACH empfohlen. Weitere Informationen finden Sie unter CREATE DATABASE. Verwenden Sie dieses Verfahren nicht für eine replizierte Datenbank.

Fügen Sie Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen nicht an, oder stellen Sie sie wieder her. Solche Datenbanken können schädlichen 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 auf einem Nichtproduktionsserver DBCC CHECKDB für die Datenbank aus. Überprüfen Sie außerdem den Code in der Datenbank, z.B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code.

Transact-SQL-Syntaxkonventionen

Syntax

sp_attach_single_file_db
    [ @dbname = ] N'dbname'
    , [ @physname = ] N'physname'
[ ; ]

Argumente

[ @dbname = ] N'dbname'

Der Name der Datenbank, die an den Server angefügt werden soll. @dbname ist "sysname" ohne Standard.

[ @physname = ] N'physname'

Der physische Name, einschließlich des Pfads, der Datenbankdatei. @physname ist nvarchar(260), ohne Standard.

Dieses Argument ist dem FILENAME Parameter der CREATE DATABASE Anweisung zugeordnet. Weitere Informationen finden Sie unter CREATE DATABASE.

Hinweis

Wenn Sie eine SQL Server 2005 (9.x)-Datenbank, die Volltextkatalogdateien enthält, an eine neuere Serverinstanz von SQL Server anfügen, werden die Katalogdateien zusammen mit den anderen Datenbankdateien, wie in SQL Server 2005 (9,x), von ihrem vorherigen Speicherort angefügt. Weitere Informationen finden Sie unter Upgrade der Volltextsuche.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

Verwenden Sie sp_attach_single_file_db nur Datenbanken, die zuvor vom Server getrennt wurden, indem Sie einen expliziten sp_detach_db Vorgang oder kopierte Datenbanken verwenden.

sp_attach_single_file_db funktioniert nur für Datenbanken mit einer einzigen Protokolldatei. Wenn sp_attach_single_file_db die Datenbank an den Server angefügt wird, wird eine neue Protokolldatei erstellt. Wenn die Datenbank schreibgeschützt ist, wird die Protokolldatei an ihrem bisherigen Speicherort erstellt.

Hinweis

Eine Datenbankmomentaufnahme kann nicht getrennt oder angefügt werden.

Verwenden Sie dieses Verfahren nicht für eine replizierte Datenbank.

Berechtigungen

Informationen dazu, wie Berechtigungen behandelt werden, wenn eine Datenbank angefügt wird, finden Sie unter CREATE DATABASE.

Beispiele

Im folgenden Beispiel wird AdventureWorks2022 getrennt und eine Datei aus AdventureWorks2022 an den aktuellen Server angefügt.

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