sp_attach_single_file_db (Transact-SQL)sp_attach_single_file_db (Transact-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

Fügt eine Datenbank mit nur einer Datendatei an den aktuellen Server an.Attaches a database that has only one data file to the current server. sp_attach_single_file_db kann nicht mit mehreren Datendateien verwendet werden.sp_attach_single_file_db cannot be used with multiple data files.

Wichtig

Dieses Feature befindet sich im Wartungsmodus und wird möglicherweise in einer künftigen Version von Microsoft SQL Server entfernt.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.Es empfiehlt sich, stattdessen CREATE DATABASE database_name for Attach zu verwenden.We recommend that you use CREATE DATABASE database_name FOR ATTACH instead. Weitere Informationen finden Sie unter CREATE DATABASE (SQL Server Transact-SQL).For more information, see CREATE DATABASE (SQL Server Transact-SQL). Verwenden Sie diese Prozedur nicht für eine replizierte Datenbank.Do not use this procedure on a replicated database.

Wichtig

Das Anfügen oder Wiederherstellen von Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen wird nicht empfohlen.We recommend that you do not attach or restore databases from unknown or untrusted sources. Solche Datenbanken können bösartigen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQLTransact-SQL -Code ausführt oder Fehler verursacht, indem er das Schema oder die physische Datenbankstruktur ändert.Such databases could contain malicious code that might execute unintended Transact-SQLTransact-SQL code or cause errors by modifying the schema or the physical database structure. 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.Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server and also examine the code, such as stored procedures or other user-defined code, in the database.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

  
sp_attach_single_file_db [ @dbname= ] 'dbname'  
    , [ @physname= ] 'physical_name'  

ArgumenteArguments

[ @dbname = ] 'dbname'Der Name der Datenbank, die an den Server angefügt werden soll.[ @dbname = ] 'dbname' Is the name of the database to be attached to the server. Der Name muss eindeutig sein.The name must be unique. dbname ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.dbname is sysname, with a default of NULL.

[ @physname = ] 'physical_name'Der physische Name der Datenbankdatei, einschließlich des Pfads.[ @physname = ] 'physical_name' Is the physical name, including path, of the database file. physical_name ist vom Datentyp nvarchar (260) und hat den Standardwert NULL.physical_name is nvarchar(260), with a default of NULL.

Hinweis

Dieses Argument entspricht dem FILENAME-Parameter der CREATE DATABASE-Anweisung.This argument maps to the FILENAME parameter of the CREATE DATABASE statement. Weitere Informationen finden Sie unter CREATE DATABASE (SQL Server Transact-SQL).For more information, see CREATE DATABASE (SQL Server Transact-SQL).

Wenn Sie eine SQL Server 2005 (9.x)SQL Server 2005 (9.x) -Datenbank mit Volltextkatalogdateien an eine SQL Server 2019 (15.x)SQL Server 2019 (15.x) -Serverinstanz anfügen, werden die Katalogdateien von ihrem vorherigen Speicherort aus zusammen mit den anderen Datenbankdateien angefügt. Dies entspricht der Vorgehensweise in SQL Server 2005 (9.x)SQL Server 2005 (9.x).When you attach a SQL Server 2005 (9.x)SQL Server 2005 (9.x) database that contains full-text catalog files onto a SQL Server 2019 (15.x)SQL Server 2019 (15.x) server instance, the catalog files are attached from their previous location along with the other database files, the same as in SQL Server 2005 (9.x)SQL Server 2005 (9.x). Weitere Informationen finden Sie unter Upgrade der Volltextsuche.For more information, see Upgrade Full-Text Search.

RückgabecodewerteReturn Code Values

„0“ (erfolgreich) oder „1“ (fehlerhaft)0 (success) or 1 (failure)

ResultsetsResult Sets

KeineNone

BemerkungenRemarks

Verwenden Sie sp_attach_single_file_db nur für Datenbanken, die zuvor vom Server getrennt wurden, indem Sie einen expliziten sp_detach_db Vorgang oder für kopierte Datenbanken verwenden.Use sp_attach_single_file_db only on databases that were previously detached from the server by using an explicit sp_detach_db operation or on copied databases.

sp_attach_single_file_db funktioniert nur in Datenbanken, die über eine einzelne Protokolldatei verfügen.sp_attach_single_file_db works only on databases that have a single log file. Wenn sp_attach_single_file_db die Datenbank an den Server anfügt, wird eine neue Protokolldatei erstellt.When sp_attach_single_file_db attaches the database to the server, it builds a new log file. Wenn die Datenbank schreibgeschützt ist, wird die Protokolldatei an ihrem bisherigen Speicherort erstellt.If the database is read-only, the log file is built in its previous location.

Hinweis

Eine Datenbankmomentaufnahme kann nicht getrennt oder angefügt werden.A database snapshot cannot be detached or attached.

Verwenden Sie diese Prozedur nicht für eine replizierte Datenbank.Do not use this procedure on a replicated database.

BerechtigungenPermissions

Informationen dazu, wie Berechtigungen verarbeitet werden, wenn eine Datenbank angefügt wird, finden Sie unter Create Database (SQL Server Transact-SQL).For information about how permissions are handled when a database is attached, see CREATE DATABASE (SQL Server Transact-SQL).

BeispieleExamples

Im folgenden Beispiel wird AdventureWorks2012AdventureWorks2012 getrennt und eine Datei aus AdventureWorks2012AdventureWorks2012 an den aktuellen Server angefügt.The following example detaches AdventureWorks2012AdventureWorks2012 and then attaches one file from AdventureWorks2012AdventureWorks2012 to the current server.

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\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';  

Weitere InformationenSee Also

Anfügen und Trennen von Datenbanken (SQL Server) Database Detach and Attach (SQL Server)
sp_detach_db (Transact-SQL-) sp_detach_db (Transact-SQL)
sp_helpfile (Transact-SQL-) sp_helpfile (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)System Stored Procedures (Transact-SQL)