Supprimer une vue SQL Server si elle existe

Comment supprimer une vue SQL Server avec une requête DDL uniquement si elle existe dans la base ? Comment tester l’existence d’une une vue SQL Server avant de la supprimer ? Ce script est un exemple pour tester l’existence de la vue avant de la supprimer.

Comment supprimer une vue SQL Server si elle existe et éviter les erreurs avant la suppression ?

En effet, supprimer une vue inexistante retourne cette erreur dans Management Studio: 

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

Ou le message d’erreur en Français :

Msg 3701 : La vue n’existe pas ou vous n’avez pas les droits.

Voici la solution, utiliser la fonction SQL IF EXISTS pour tester l’existence de la vue avant de la supprimer, comme dans cet exemple:

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

C’est un exemple de requête LDD pour Langage de Définition de Données, appelé aussi DDL pour Data Definition Language en Anglais.

Cette page plus générale sur les vues expose quelques exemples des principales requêtes LDD pour gérer les vues en T-SQL.

Soyez le premier à commenter

Laisser un commentaire