SQL Server : exécution de "SELECT 10.test;", erreur de syntaxe ? Ou pas.
Un post, intitulé Fun with dot, sur le blog de Madhivanan a porté à mon attention un point assez "amusant".
L'exécution de l'ordre (sous SQL Server 2008 à l'heure où j'écris ces lignes)
SELECT 10.test;
ne donne pas lieu à l'affichage d'un message d'erreur de syntaxe, mais tout simplement au retour d'un jeu de résultat contenant la valeur 10 pour la colonne nommée "test" :
Ceux qui travaillent avec du SQL dynamique et/ou sur des outils de génération de code apprécieront sans doute. Ca peut donner lieu à des bugs qui ne sont pas forcément simples à détecter.
Personnellement je classerais ça aux côtés d'un autre ordre qui sort un résultat au lieu du message d'erreur de syntaxe que je m'attendais à avoir :
SELECT COUNT(*);
qui renvoi tout simplement la valeur 1 :
Je ne sais pas si ces comportements sont spécifiques à SQL Server ou sont inscrits dans les normes SQL.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :