Comment éviter l’erreur impossible de supprimer la base de données avec SQL Server ? Ou simplement l’erreur SQL Server 3702. Il est possible de gérer les bases de données SQL avec des scripts ou via les différentes fenêtres de SQL Server Management Studio. Par exemple, vous pouvez simplement supprimer une base de données avec une commande SQL DROP DATABASE.
Cependant, s’il existe des connexions actives sur la base de données à supprimer, celle-ci renvoie un message d’erreur, car une base de données avec une connexion active ne peut pas être supprimée.
Table of Contents
1. Script de suppression de base SQL Server qui génère l’erreur 3702
Le texte exact du message d’erreur est celui-ci : « Impossible de supprimer la base de données car elle est actuellement en cours d’utilisation. (Microsoft SQL Server, Erreur : 3702) ». Le message d’erreur en Anglais est : « Cannot drop the database because it is currently in use ».
Note : Prenez soin de vérifier les sauvegardes de la base de données avant de la supprimer complètement. Surtout dans les projets importants et les environnements de production.
Ce type de script génère l’erreur :
USE [master]; GO DROP DATABASE [DB1]; GO
Une autre méthode consiste à vérifier l’existence de la base de données sur le serveur, avant d’exécuter la commande Drop Database, comme ceci par exemple :
USE [master]; GO IF EXISTS ( SELECT name FROM master.dbo.sysdatabases WHERE name = 'DB1' ) DROP DATABASE [DB1]; GO
Pour éviter cette erreur, fermez toutes les connexions actives à la base de données avant le dépôt et terminez les requêtes en cours. Ensuite, fermez les onglets dans SSMS ou terminez explicitement les connexions ouvertes sur la base de données. Enfin, fermez les onglets actifs si un seul utilisateur est actuellement connecté.
2. Exécuter la commande sp_who2 pour identifier les sessions actives
Dans la capture d’écran, nous identifions les sessions actives pour la base de données DB1. Nous voyons un utilisateur avec le SPID 51.
sp_who2;
Cet autre article explique comment créer une base de données avec SSMS simplement depuis l’interface graphique utilisateur et avec les options par défaut.
3. Fermer les sessions actives avec la commande SQL Server kill
kill 51
Modifier la requête avec les numéros SPID trouvés dans votre base. La commande SQL kill permet d’éviter l’erreur SQL Server 3702.
4. Répétez l’opération pour toutes les connexions SQL actives
Maintenant la base de données est supprimée sans message d’erreur. Le but ici est de terminer toutes les sessions active pour pouvoir supprimer la base.
Conclusion
Cet article a expliqué comment éviter un message d’erreur courant de SQL Server: Impossible de supprimer la base de données car elle est actuellement en cours d’utilisation. Pour aller plus loin, voici la documentation officielle de la commande T-SQL kill. En effet, il s’agit d’un objet qui permet de nombreuses connexions de différents utilisateurs en même temps.
Une base de données, contrairement à une table ne s’efface pas. Une base de données doit être supprimée pour en effacer tout le contenu. Utiliser la commande DROP DATABASE pour supprimer une base de données SQL Server.
Pour aller plus loin et en savoir plus sur les bases de données. Voici comment installer une deuxième instance SQL Server sur le même serveur.
Soyez le premier à commenter