Bonjour,
Dans une procédure TSQL, j'ai un IF avec plusieurs conditions. Du genre :
IF (Condition_1 AND Condition_2 AND Condition_3)
BEGIN
...
END
Sur ces 3 conditions, une d'elle utilise une fonction qui est assez (voire très) lente.
Les 2 autres conditions sont assez rapides.
Ma question est la suivante :
Comment SQL Server fait pour ce IF ? Est-ce qu'il vérifie chaque condition, ou comme c'est un "AND", il teste la première condition, et si c'est TRUE, la seconde, et ainsi de suite ?
En d'autres termes, je souhaite éviter que SQL server vérifie la condition la plus lente si l'une des 2 autres conditions (les plus rapides) est à FALSE.
Je sais que je pourrais faire qq chose comme ça :
IF (Condition_1 AND Condition_2) -- Les 2 conditions rapides
BEGIN
IF Condition_3
BEGIN
...
END
END
Mais ce n'est pas très joli.
Est-ce que l'ordre des Conditions dans un IF est important ? SQL Server suit-il l'ordre des Conditions, ou il fait ce qu'il a envie de faire ?
Est-ce qu'on peut forcer l'ordre des conditions ?
La question est aussi valable pour une condition OR :
IF (Condition_rapide OR Condition_Lente)
BEGIN
...
END
Je veux éviter que SQL ne vérifie les 2 conditions. Si la condition rapide est TRUE, alors, pas besoin de tester la Condition_Lente.
Merci de vos conseils.
---------------
Les montres sans aiguilles Origami Watches sont disponibles : www.origami.watch.