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