sp_attach_db (Transact-SQL)
Mis à jour : 12 décembre 2006
Attache une base de données à un serveur.
![]() |
---|
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft 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 plutôt CREATE DATABASE database_name FOR ATTACH. Pour plus d'informations, consultez CREATE DATABASE (Transact-SQL). |
![]() |
---|
Pour recréer plusieurs fichiers journaux lorsqu'un ou plusieurs d'entre eux possèdent un nouvel emplacement, utilisez CREATE DATABASE database_name FOR ATTACH_REBUILD_LOG. |
![]() |
---|
Nous vous recommandons de ne pas attacher ou restaurer de bases de données provenant de sources inconnues ou non approuvées. Ces bases de données peuvent contenir du code malveillant qui peut exécuter du code Transact-SQL imprévisible ou causer des erreurs en modifiant le schéma ou la structure physique de la base de données. Avant d'utiliser une base de données provenant 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 (par exemple les procédures stockées ou tout autre code défini par l'utilisateur) contenu dans la base de données. |
Conventions de syntaxe Transact-SQL
Syntaxe
sp_attach_db [ @dbname= ] 'dbname'
, [ @filename1= ] 'filename_n' [ ,...16 ]
Arguments
- [ @dbname= ] **'**dbnam '
Nom de la base de données à attacher au serveur. Ce nom doit être unique. dbname est de type sysname, avec NULL comme valeur par défaut.
[ @filename1= ] 'filename_n'
Nom physique, chemin d'accès compris, d'un fichier de base de données. filename_n est de type nvarchar(260), avec NULL comme valeur par défaut. Jusqu'à 16 noms de fichier peuvent être spécifiés. Les noms de paramètres démarrent à @filename1 et augmentent jusqu'à @filename16. La liste des noms de fichiers doit comprendre au moins le fichier primaire. Le fichier primaire contient les tables système pointant vers d'autres fichiers dans la base de données. Elle doit aussi comprendre tous les fichiers qui ont été déplacés après que la base de données fut détachée.Remarque :
Cet argument crée un mappage vers le paramètre FILENAME de l'instruction CREATE DATABASE. Pour plus d'informations, consultez CREATE DATABASE (Transact-SQL). Dans le moteur de base de données SQL Server 2005, tout fichier de texte intégral appartenant à la base de données qui est jointe sera joint avec la base de données. Pour spécifier un nouveau chemin pour le catalogue de texte intégral, vous pouvez spécifier le fichier de catalogue en fournissant un nom de répertoire sans nom de fichier. Pour plus d'informations, consultez Attacher et détacher des catalogues de texte intégral.
Remarque :
Vous ne pouvez pas joindre de catalogue de texte intégral au répertoire racine.
Jeux de résultats
Aucun
Notes
La procédure stockée sp_attach_db doit être exécutée uniquement sur des bases de données qui ont été préalablement détachées du serveur de base de données au moyen d'une opération sp_detach_db explicite ou sur des bases de données copiées. Si vous avez spécifié plus de 16 fichiers, utilisez CREATE DATABASE database_name FOR ATTACH ou CREATE DATABASE database_name FOR_ATTACH_REBUILD_LOG. Pour plus d'informations, consultez CREATE DATABASE (Transact-SQL).
Tout fichier non spécifié est considéré comme se trouvant à son dernier emplacement identifié. Pour utiliser un fichier à un emplacement différent, vous devez spécifier ce nouvel emplacement.
Une base de données créée dans une version plus récente de SQL Server ne peut pas être attachée à des versions antérieures.
![]() |
---|
Une capture instantanée de base de données ne peut être détachée ou attachée. |
Lorsque vous attachez une base de données répliquée qui a été copiée au lieu d'être détachée, tenez compte des conditions suivantes :
- Si vous attachez la base de données à la même version et à la même instance de serveur que celles de la base de données d'origine, aucune opération supplémentaire n'est nécessaire.
- Si vous attachez la base de données à la même instance de serveur alors que sa version a été mise à niveau, vous devez exécuter sp_vupgrade_replication pour mettre à jour la réplication à la fin de l'opération de rattachement.
- Si vous attachez la base de données à une instance de serveur différente, sans tenir compte de la version, vous devez exécuter sp_removedbreplication pour supprimer la réplication une fois l'opération de rattachement effectuée.
Autorisations
Pour plus d'informations sur la gestion des autorisations lorsqu'une base de données est attachée, consultez CREATE DATABASE (Transact-SQL).
Valeurs du code de retour
0 (succès) ou 1 (échec)
Exemples
Dans l'exemple suivant, des fichiers sont attachés depuis AdventureWorks
au serveur en cours.
EXEC sp_attach_db @dbname = N'AdventureWorks',
@filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf',
@filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_log.ldf';
Voir aussi
Référence
sp_detach_db (Transact-SQL)
sp_helpfile (Transact-SQL)
sp_removedbreplication (Transact-SQL)
Procédures stockées système (Transact-SQL)
Autres ressources
Attachement et détachement des bases de données
Sécurisation des fichiers de données et des fichiers journaux
Attacher et détacher des catalogues de texte intégral
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
12 décembre 2006 |
|
5 décembre 2005 |
|