DROP DATABASE (Transact-SQL)
Supprime un ou plusieurs bases de données utilisateur ou instantanés de base de données à partir d'une instance de SQL Server.
S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
Conventions de la syntaxe Transact-SQL
Syntaxe
-- SQL Server Syntax
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] [;]
-- Windows Azure SQL Database Syntax
DROP DATABASE database_name [;]
Argument
database_name
Spécifie le nom de la base de données à supprimer. Pour afficher une liste des bases de données, utilisez l'affichage catalogue sys.databases.database_snapshot_name
S'applique à : SQL Server 2008 et SQL Server 2014.
Spécifie le nom d'un instantané de base de données à supprimer.
Remarques d'ordre général
Une base de données peut être supprimée quel que soit son statut : hors connexion, en lecture seule, suspect, etc. Pour afficher l'état actuel d'une base de données, utilisez la vue de catalogue sys.databases.
Une base de données supprimée ne peut être recréée que par la restauration d'une copie de sauvegarde. Les instantanés de base de données ne peuvent pas être sauvegardés et ne peuvent donc pas être restaurés.
Lorsque vous supprimez une base de données, vous devez effectuer une sauvegarde de la base de données master.
Si vous supprimez une base de données, celle-ci l'est également d'une instance de SQL Server. Il en est de même pour les fichiers disque physiques utilisés par la base de données. Si la base de données ou l'un de ses fichiers est hors connexion lors de la suppression, les fichiers disque ne sont pas supprimés. Ces fichiers peuvent être supprimés manuellement à l'aide de l'Explorateur Windows. Pour supprimer une base de données du serveur actif sans supprimer les fichiers du système de fichiers, utilisez sp_detach_db.
SQL Server
Si vous supprimez un instantané de base de données, celui-ci l'est également d'une instance de SQL Server. Il en est de même pour les fichiers partiellement alloués du système de fichiers physiques NTFS utilisés par l'instantané. Pour plus d'informations sur l'utilisation des fichiers partiellement alloués par des instantanés de base de données, consultez Instantanés de base de données (SQL Server). La suppression d'un instantané de base de données efface le cache de plan pour l'instance de SQL Server. L'effacement du cache du plan provoque une recompilation de tous les plans d'exécution suivants et peut provoquer une chute soudaine et temporaire des performances de requête. Pour chaque mémoire cache effacée dans le cache du plan, le journal des erreurs SQL Server contient le message d'information suivant : « SQL Server a rencontré %d occurrence(s) de vidages de mémoire cache pour la mémoire cache '%s' (partie du cache du plan) en raison d'opérations de maintenance ou de reconfiguration de base de données ». Ce message est enregistré toutes les cinq minutes si le cache est vidé au cours de cet intervalle de temps.
Interopérabilité
SQL Server
Pour supprimer une base de données publiée à des fins de réplication transactionnelle, ou bien une base de données publiée ou abonnée à une réplication de fusion, vous devez d'abord supprimer sa réplication. Si une base de données est endommagée, si vous ne pouvez pas supprimer la réplication dans un premier temps ou si les deux cas de figure se présentent, vous pouvez toujours, dans la plupart des cas, supprimer la base de données à l'aide de l'instruction ALTER DATABASE pour la déconnecter, puis la supprimer.
Si la base de données intervient dans l'envoi de journaux, supprimez l'envoi de journaux avant de supprimer la base de données. Pour plus d'informations, consultez À propos de la copie des journaux de transaction (SQL Server).
Base de données SQL Windows Azure
None
Limitations et restrictions
Les bases de données système ne peuvent pas être supprimées.
L'instruction DROP DATABASE doit être exécutée en mode autocommit et elle n'est pas autorisée dans une transaction implicite ou explicite. Le mode autocommit est le mode par défaut pour la gestion des transactions.
Vous ne pouvez pas supprimer une base de données en cours d'utilisation, c'est-à-dire ouverte par un utilisateur pour une opération de lecture ou d'écriture. Pour supprimer des utilisateurs de la base de données, utilisez ALTER DATABASE pour affecter à la base de données la valeur SINGLE_USER.
SQL Server
Les instantanés de base de données doivent être supprimés avant que la base de données ne soit supprimée.
Base de données SQL Windows Azure
Vous devez être connecté à la base de données master pour supprimer une base de données.
L'instruction DROP DATABASE doit être la seule instruction d'un traitement SQL et vous pouvez supprimer une seule base de données à la fois.
Autorisations
SQL Server
Requiert l'autorisation CONTROL sur la base de données, ou l'autorisation ALTER ANY DATABASE, ou l'appartenance au rôle de base de données fixe db_owner.
Base de données SQL Windows Azure
Seule la connexion principale au niveau du serveur (créée par le processus de configuration) ou les membres du rôle de base de données dbmanager peuvent supprimer une base de données.
Exemples
A.Suppression d'une base de données unique
L'exemple suivant supprime la base de données Sales.
DROP DATABASE Sales;
B.Suppression de plusieurs bases de données
S'applique à : SQL Server 2008 et SQL Server 2014. |
L'exemple suivant supprime chacune des bases de données répertoriées.
DROP DATABASE Sales, NewSales;
C.Suppression d'un instantané de base de données
S'applique à : SQL Server 2008 et SQL Server 2014. |
L'exemple suivant supprime un instantané de base de données, appelé sales_snapshot0600, sans affecter la base de données source.
DROP DATABASE sales_snapshot0600;