Détacher une base de données

Cette rubrique explique comment détacher une base de données dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL. Les fichiers détachés restent et peuvent être rattachés à l'aide de CREATE DATABASE avec l'option FOR ATTACH ou FOR ATTACH_REBUILD_LOG. Vous pouvez les déplacer sur un autre serveur et les y attacher.

Dans cette rubrique

  • Avant de commencer :

    Limitations et restrictions

    Sécurité

  • Pour détacher une base de données, utilisez :

    SQL Server Management Studio

    Transact-SQL

Avant de commencer

Limitations et restrictions

Pour obtenir une liste des limitations et des restrictions, consultez Attacher et détacher une base de données (SQL Server).

Sécurité

Autorisations

Nécessite l'appartenance au rôle de base de données fixe db_owner.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour détacher une base de données

  1. Dans l'Explorateur d'objets de SQL Server Management Studio, connectez-vous à une instance de Moteur de base de données SQL Server et développez cette dernière.

  2. Développez Bases de données, puis sélectionnez le nom de la base de données utilisateur que vous souhaitez détacher.

  3. Cliquez avec le bouton droit sur le nom de la base de données, pointez sur Tâches, puis cliquez sur Détacher. La boîte de dialogue Détacher la base de données apparaît.

    • Bases de données à détacher
      Répertorie les bases de données à détacher.

    • Nom de la base de données
      Spécifie le nom de la base de données à détacher.

    • Supprimer les connexions
      Permet de déconnecter les connexions à la base de données spécifiée.

      [!REMARQUE]

      Vous ne pouvez pas détacher une base de données avec des connexions actives.

    • Mettre à jour les statistiques
      Par défaut, l'opération de détachement conserve toutes les statistiques d'optimisation obsolètes avant de procéder au détachement ; pour actualiser les statistiques existantes, activez cette case à cocher.

    • Conserver les catalogues de texte intégral
      Par défaut, l'opération de détachement conserve tous les catalogues de texte intégral associés à la base de données. Pour les supprimer, désactivez la case à cocher Conserver les catalogues de texte intégral. Cette option s'affiche uniquement lors de la mise à niveau d'une base de données à partir de SQL Server 2005.

    • État
      Affiche l'un des états suivants : Prêt ou Non prêt.

    • Message
      La colonne Message peut indiquer des informations sur la base de données, comme suit :

      • Lorsqu'une base de données est impliquée dans la réplication, l'État est Non prêt et la colonne Message indique Base de données répliquée.

      • Lorsqu'une base de données possède une ou plusieurs connexions actives, l'État est Non prêt et la colonne Message indique <number_of_active_connections> connexion(s) active(s), par exemple 1 connexion(s) active(s). Avant de détacher la base de données, vous devez déconnecter toutes les connexions actives en cliquant sur Supprimer les connexions.

      Pour obtenir plus d'informations sur un message, cliquez sur le texte du lien hypertexte pour ouvrir le Moniteur d'activité.

  4. Lorsque vous avez prêt à lancer le processus, cliquez sur OK.

[!REMARQUE]

La base de données ainsi détachée reste toujours visible dans le nœud Bases de données de l'explorateur d'objets jusqu'à ce que la vue soit actualisée. Vous pouvez actualiser la vue à tout moment en cliquant dans le volet de l'explorateur d'objets et en sélectionnant, dans la barre de menus, les éléments Affichage puis Actualiser.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour détacher une base de données

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. Cet exemple détache la base de données AdventureWorks2012 avec l'option skipchecks définie sur la valeur True.

EXEC sp_detach_db 'AdventureWorks2012', 'true';

Voir aussi

Référence

sp_detach_db (Transact-SQL)

Concepts

Attacher et détacher une base de données (SQL Server)