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


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'.