Un code fou. Le point principal est :SET
pourrait générer une erreur pour les variables mysql.
Par exemple.
SET @value = 0;
SET SESSION sql_mode = if(@value, @@SESSION.sql_mode, 'something wrong uphere');
Renvoie ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'something wrong uphere'
et l'exécution serait arrêtée.
Cette approche n'est pas sémantique mais elle fonctionne.