bonjour,
j'aimerais savoir comment peut on tester l'existance d'une table ou d'un champ dans une table dans une base
merci a vous
bonjour,
j'aimerais savoir comment peut on tester l'existance d'une table ou d'un champ dans une table dans une base
merci a vous
D'une table :
D'un champ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'nomTable')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 If Exists (Select monChamp FROM MaTable)
est ce que ca marche si nomtable est une variable @nom_table
idem pour le champ
encore merci l'ami
Je pense que ça marche, le plus simple c'est d'essayer
Code : Sélectionner tout - Visualiser dans une fenêtre à part IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(@nomtable)
oui ca marche merci
mais pour les champs pas vraiment
encore marci
N'utilisez pas les tables systèmes directements. Elles sont réservées à l'usage interne de SQL Server et ne sont pas compatible d'une version à l'autre.
Pour résoudre votre problème vous devez utiliser les vues d'information de schéma normative telles que :
INFORMATION_SCHEMA.TABLES
INFORMATION_SCHEMA.COLUMNS
A +
On peut utiliser les procédures stockées pré-définies aussi.
sp_columns table : structure de la table;
sp_helpbd : informations sur les bases;
sp_tables : tables accessibles par l'utilisateur;
sp_databases : taille des bd;
sp_help_revdatabase : script de création des tables;
sp_help_revdatabase bd : script de création de la base bd;
etc.
Oui, mais l'usage des proc stock ne répond pas à son problème !
A +
Bonjour,
On peut tester l'existance d'une table avec sp_columns 'table' ? Si elle n'existe pas, une erreur est renvoyée.
et pour les champs on peut aussi utiliser cette procédure car elle renvoie la structure de la table, avec la liste des champs.
Partager