IF EXISTS et nom de colonne non valide
bonjour,
Je voudrais écrire un script SQL qui puisse être exécuté plusieurs fois sans erreurs. A la fin du script, on supprime une colonne.
Si on exécute une 2eme fois, ca envoie une erreur indiquant que la colonne n'existe pas. Normal ..... sauf que j'ai mis un test "if exists (SELECT * FROM INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME="macolonne")"
Et là, je ne comprends plus 8O
Code:
1 2 3 4 5 6 7 8 9 10
| if exists(SELECT * FROM INFORMATION_SCHEMA.COLUMNS where TABLE_CATALOG='cat1' and
TABLE_SCHEMA='schema1' and TABLE_NAME='table1' and COLUMN_NAME='NiveauPyramide')
BEGIN
--traitement utilisant la colonne 'NiveauPyramide'
update table2 set col1= ... where table1.NiveauPyramide
--suppression de la colonne
alter table schema1.table1 drop column NiveauPyramide
END
GO |
a l'exécution l'erreur suivante remonte:
Msg*207, Niveau*16, État*1, Ligne*17
Nom de colonne non valide*: 'NiveauPyramide'.