DROP DATABASE (Transact-SQL)

Supprime une ou plusieurs bases de données utilisateur ou un ou plusieurs instantanés de base de données d'une instance de SQL Server ou des bases de données utilisateur du serveur Base de données SQL Windows Azure.

S'applique à : SQL Server (de SQL Server 2008 à la version actuelle), Base de données SQL Windows Azure (de la version initiale à la version actuelle).

Icône Lien de rubrique 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 [;]

-- Core Syntax (common to SQL Server and SQL Database) 
DROP DATABASE database_name [;]

Arguments

  • 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
    Spécifie le nom d'un instantané de base de données à supprimer.

    S'applique aux types de fonctions suivantes : SQL Server uniquement.

Remarques d'ordre général

Noyau

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 l'affichage 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.

SQL Server

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.

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. Le fait de vider le cache du plan entraîne la recompilation de tous les plans d'exécution suivants et peut entraîner une baisse temporaire et soudaine des performances de requête. Chaque fois qu'une mémoire cache est vidée, le message d'information suivant est inscrit dans le journal des erreurs SQL Server : "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.

Base de données SQL Windows Azure

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.

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 l'affichage catalogue sys.databases.

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

Aucun

Limitations et restrictions

Noyau

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.

S'applique à : SQL Server et Base de données SQL Windows Azure

DROP DATABASE Sales;

B. Suppression de plusieurs bases de données

L'exemple suivant supprime chacune des bases de données répertoriées.

S'applique à : SQL Server

DROP DATABASE Sales, NewSales;

C. Suppression d'un instantané de base de données

L'exemple suivant supprime un instantané de base de données, appelé sales_snapshot0600, sans affecter la base de données source.

S'applique à : SQL Server

DROP DATABASE sales_snapshot0600;

Voir aussi

Référence

ALTER DATABASE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

EVENTDATA (Transact-SQL)

sys.databases (Transact-SQL)