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';