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. Voici comment vérifier si une table existe en T-SQL.

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. Et ce de manière systématique.

Tester si une table SQL Server existe avant suppression

En effet, comment tester l’existence de la table avant de la supprimer pour éviter cette erreur SQL Server classique ?

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

Pour utiliser les fonctions SQL Server comme If Exists et Drop Table, voir l’exemple T-SQL ci-dessous.

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

Cet article explique comment vérifier si une table existe avant de la supprimer avec une requête SQL simple. Utiliser la fonction native Microsoft EXISTS(). L’article suivant montre comment supprimer une table sans vérifier son existence

Utiliser le test d’existence avec d’autres objets SQL Server

Pour aller plus loin cette méthode pour vérifier si une table existe en T-SQL fonctionne aussi pour d’autres d’objets MS SQL. Comme les vues, les procédures stockées, mais aussi les tables temporaires locales ou globales.

Tester si une table existe en T-SQL avant une commande INSERT

D’autre part, avec du code T-SQL de type LDD (pour Langage de Définition de Données) automatisé, utiliser la fonction EXISTS. En effet, pour insérer des données dans une table et gérer le risque d’erreurs, un test est recommandé.

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

Votre adresse de messagerie ne sera pas publiée.


*