Vérifier qu'un object (table, procédure stockée) existe

Contenu du snippet

Il vous est peut être arrivé de vouloir vérifier si une table existe avant d'exécuter une certaine tâche.
Tous les informations concernant les tables, les procédures stockées, les fonctions et autres objets de base de données sont stockées dans la table SYSOBJECTS. Si vous êtes connecté en tant que Utilisateur sa(super admin), vous pourrez la voir dans vos tables. Il faut aussi noter que toutes les infos concernant les champs de vos tables sont dans la table SYSCOLUMNS.
Revenons à notre table SYSOBJECTS, dont les champs NAME et XTYPE vont nous intéresser.
Name nous permettra de rechercher un objet ayant pour nom Name et XTYPE donne le type de la table.
Les types suivants sont disponibles:
C = Contrainte CHECK
D = Valeur par défaut ou contrainte DEFAULT
F = Contrainte FOREIGN KEY
L = Journal
FN = Fonction scalaire
IF = Fonction table en ligne
P = Procédure stockée
PK = Contrainte PRIMARY KEY (de type K)
RF = Procédure stockée de réplication
S = Table système
TF = Fonction table
TR = Déclencheur
U = Table utilisateur
UQ = Contrainte UNIQUE (de type K)
V = Vue
X = Procédure stockée étendue
Pour Trouver un object de façon précise exécutez une requête de sélection dans la table SYSOBJECTS.

Source / Exemple :


--Permet de savoir si une table 'Produits' existe dans notre base de données
Select * from sysobjects where name='Produits' and Xtype='U'

--Permet de savoir si une procédure stockée 'SP_ValeursProduits' existe dans notre BD
Select * from sysobjects where name='SP_ValeursProduits' and Xtype='P'

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.