J'ai du code SQL qui doit être exécuté si une certaine vue existe dans une base de données. Comment procéder pour vérifier si la vue existe?
EDIT: Le SGBD utilisé est Microsoft SQL Server
J'ai du code SQL qui doit être exécuté si une certaine vue existe dans une base de données. Comment procéder pour vérifier si la vue existe?
EDIT: Le SGBD utilisé est Microsoft SQL Server
POUR SQL SERVER
IF EXISTS(select * FROM sys.views where name = '')
sys.schema
ici aussi.Il y a déjà de nombreuses façons spécifiées ci-dessus mais l'une de mes préférées manque.
WHERE
nView
est le nom de la vueMISE À JOUR 25/03/2017: comme @hanesjw a suggéré de supprimer une procédure de magasin, utilisez
P
plutôtV
que comme deuxième argument deOBJECT_ID
la source
C'est le moyen le plus portable et le moins intrusif:
Edit: cela fonctionne sur SQL Server et il n'est pas nécessaire que vous vous joigniez à
sys.schemas
pour obtenir le schéma de la vue. C'est moins important si tout l'estdbo
, mais si vous faites bon usage des schémas, gardez cela à l'esprit.Chaque SGBDR a son propre petit moyen de vérifier les métadonnées comme celui-ci, mais
information_schema
c'est en fait ANSI, et je pense qu'Oracle et apparemment SQLite sont les seuls à ne pas le prendre en charge d'une manière ou d'une autre.la source
la source
Pour les personnes qui vérifient l'existence pour abandonner,
View
utilisez ceciDe,
SQL Server 2016 CTP3
vous pouvez utiliser de nouvelles instructions DIE au lieu de grosIF
wrapperssyntaxe
Requete :
Plus d'infos ici
la source
si c'est Oracle, vous utiliserez la table "all_views".
Cela dépend vraiment de vos dbms.
la source
Si vous souhaitez vérifier la validité et la cohérence de toutes les vues existantes, vous pouvez utiliser la requête suivante
la source
DANS SQL Server,
la source
Pour développer la réponse de Kevin.
la source
Vous pouvez vérifier la disponibilité de la vue de différentes manières
POUR SQL SERVER
utiliser sys.objects
utiliser sysobjects
utiliser sys.views
utiliser INFORMATION_SCHEMA.VIEWS
utiliser OBJECT_ID
utiliser sys.sql_modules
la source