Partager via


sp_attach_single_file_db (Transact-SQL)

S'applique à : SQL Server

Joint une base de données qui n’est qu’un seul fichier de données au serveur actuel. sp_attach_single_file_db ne peut pas être utilisé avec plusieurs fichiers de données.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Nous vous recommandons d'utiliser CREATE DATABASE <database_name> FOR ATTACH à la place. Pour plus d’informations, consultez CREATE DATABASE. N’utilisez pas cette procédure sur une base de données répliquée.

N’attachez pas ou ne restaurez pas de bases de données à partir de sources inconnues ou non approuvées. Ces bases de données peuvent contenir du code malveillant susceptible d'exécuter du code Transact-SQL indésirable ou de provoquer des erreurs en modifiant le schéma ou la structure physique des bases de données. Avant d’utiliser une base de données issue d’une source inconnue ou non approuvée, exécutez DBCC CHECKDB sur la base de données sur un serveur autre qu’un serveur de production et examinez également le code, notamment les procédures stockées ou le code défini par l’utilisateur, de la base de données.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @dbname = ] N’dbname'

Nom de la base de données à attacher au serveur. @dbname est sysname, sans valeur par défaut.

[ @physname = ] N’physname'

Nom physique, y compris le chemin d’accès, du fichier de base de données. @physname est nvarchar(260), sans valeur par défaut.

Cet argument est mappé au FILENAME paramètre de l’instruction CREATE DATABASE . Pour plus d’informations, consultez CREATE DATABASE.

Remarque

Lorsque vous attachez une base de données SQL Server 2005 (9.x) qui contient des fichiers catalogue de texte intégral sur une instance de serveur plus récente de SQL Server, les fichiers catalogue sont attachés à partir de leur emplacement précédent, ainsi que les autres fichiers de base de données, identiques à ceux de SQL Server 2005 (9.x). Pour plus d’informations, consultez Mise à niveau de la fonction de recherche en texte intégral.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Jeu de résultats

Aucune.

Notes

Utilisez sp_attach_single_file_db uniquement sur les bases de données précédemment détachées du serveur à l’aide d’une opération explicite sp_detach_db ou sur des bases de données copiées.

sp_attach_single_file_db fonctionne uniquement sur les bases de données qui ont un seul fichier journal. Lorsque sp_attach_single_file_db vous attachez la base de données au serveur, elle génère un nouveau fichier journal. Si la base de données est en lecture seule, le journal est créé au même endroit que le précédent.

Remarque

Une capture instantanée de base de données ne peut pas être détachée ni attachée.

N’utilisez pas cette procédure sur une base de données répliquée.

autorisations

Pour plus d’informations sur la façon dont les autorisations sont gérées lorsqu’une base de données est attachée, consultez CREATE DATABASE.

Exemples

Dans l'exemple suivant, AdventureWorks2022 est détaché, puis un des fichiers d'AdventureWorks2022 est attaché au serveur actif.

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