SI l'état de l'évaluation de l'expression en TSQL
Langage de programmation comme le C#, java si une condition a plusieurs expressions avec " ET " (&&) opérateur puis la seconde expression n'est évaluée que si la première expression est vraie.
Qu'en TSQL? Pour être précis c'est une condition dans une procédure Stockée dans Sql server de Microsoft.
IF (exprA AND exprB)
Dans la condition ci-dessus si exprA est faux, alors le exprB est évalué ou pas?
- "Cela dépend". Si elle contient
EXISTS
des sous-requêtes, puis à peu près toujours de court-circuit ne pas arriver. Vous ne peut jamais compter sur elle passe. Vous pouvez imbriquer desCASE
expressions ou nidIF
expressions à la garantir. j'ai bounty sur une question similaire, à l'instant si quelqu'un croit en regardant certains cas supplémentaires!
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas compter sur SQL Server n'est pas l'évaluation de la seconde expression, si la première est fausse. Voir ma réponse à la question lié par Martin dans son commentaire.
Comme d'autres l'ont noté, il dépend de ce que votre SI les conditions sont. Toutefois, si vous êtes seulement en utilisant des expressions simples, il court circuit. Exécutez ce qui suit et vous verrez que la division par zéro erreur dans la deuxième expression ne se produit jamais:
La
CASE
déclaration semble permettre de court-circuit comme indiqué dans les exemples ci-dessous: