Salut à tous, je me pose une petite problématique.
Je dois faire évoluer un petit utilitaire qui se connecte à des* bases de données. L'évolution aura pour effet collatéral l'ajout d'un champs dans une des tables.
* l'utilitaire rentre dans un process de préparation de bases qui seront ensuite installées chez les clients
Le problème étant que cet utilitaire devra rester compatible avec des bases créées antérieurement à la modif, donc sans cette colonne.
Donc ma question est, existe-il une syntaxe sql simple, directement dans le select, un peu à l'image de ce que peu faire coalesce pour les valeurs, qui renverrait une valeur par défaut (NULL en l’occurrence ici, ou une chaine vide) à la place de la colonne manquante et en lieu et place de lever une exception.
Quand je parle de syntaxe simple, c'est pour éviter les montages à base de IF machin et la gestion de 2 requêtes différentes suivant la version de base, ou même de IF machin ALTER TABLE pour rajouter la colonne manquante avant exécution. Cette solution ALTER TABLE n'étant pas forcément très intègre puisqu'elle modifie une base potentiellement déjà validée.
PS : En cas de solution spécifique à un SGBD, on tourne pour le moment en SQLServer 2008, mais ça pourrait évoluer à moyen/long terme
Partager