Bonjour à tous,
Dans un script sql, j'ai un souci de compatibilité avec plusieurs versions de base à mettre en place dans une requete insert.
Pour résumer, pour des bases inférieures à un n° de version, on va dire 10 par exemple, j'ai une colonne A dans une table. Pour les bases en version 10 et plus, cette colonne n'existe plus, elle est remplacée par une nouvelle colonne B.
Dans le script je dois gérer les 2 cas, j'ai donc fait ceci (je passe le n° de version en paramètre) :
Ce code ne marche pas, sql server me jette à la compil car, ou l'une, ou l'autre des colonnes A ou B n'existe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 IF @Version >= 10 INSERT (..., B, ...) VALUES (..., Valeur_B, ...) ELSE INSERT (..., A, ...) VALUES (..., Valeur_A, ...)
En fait, c'est pas un IF qu'il me faudrait, mais l'équivalent de la condition de précompilation #IF qui existe dans certains langages.
Est-ce que ça existe en sql server, ou sinon comment faire, sachant que je n'ai pas qu'une requête dans ce cas là, pas qu'un seul script, et d'autre viendront se rajouter dans l'avenir aussi ?
Partager