Tester si une table SQL Server existe

Comment tester si une table SQL Server existe avant de la supprimer par exemple? Ou encore avant de l’utiliser pour une opération de manipulation de données? Pour supprimer une table SQL Server directement, utiliser la commande DROP.

Pour supprimer une table SQL Server sans erreur durant les déploiements par exemple, utiliser les commandes If Exists et Drop Table est obligatoire. De plus pour éviter d’avoir des messages d’erreur, il est plus intéressant de tester l’existence de la table avant de la supprimer.

Comment tester si une table SQL Server existe et la supprimer de la base?

Utiliser les fonctions SQL Server avec If Exists et Drop Table comme dans l’exemple ci-dessous.

IF EXISTS (
  SELECT 1 FROM sys.objects
  WHERE object_id = object_id(N'[dbo].[VENTES]')
  AND type in (N'U') 
)
BEGIN
  DROP TABLE [dbo].[VENTES]
END;

En effet, il faut tester l’existence de la table avant de la supprimer pour éviter cette erreur:

“Msg 3701, Level 11, State 5, Line 1
Cannot drop the table ‘VENTES’, because it does not exist or you do not have permission.”

Cet article nous explique comment vérifier si une table existe avant de la supprimer avec une requête SQL simple. L’article suivant montre comment supprimer une table sans vérifier son existence

Cet article pour tester l’existence d’une table avant de la supprimer existe également en Anglais ici.

Appliquer le test d’existence à d’autres objets SQL Server

Pour aller plus loin cet méthode de vérification de l’existence des objets est aussi à mettre en oeuvre pour toutes sortes d’objets, comme les vues, les procédures stockées, mais aussi les tables temporaires locales ou globales.

En effet, même si les tables temporaires sont supprimées à la fin de la session, il est préférable de tester l’existence avant de les créer à nouveau avec le même nom dans la même base.

Soyez le premier à commenter

Laisser un commentaire