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
Version imprimable
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 champCode:
1
2 IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'nomTable')
Code:
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: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.