Étant donné:Est-ce que toutes les parties d'une expression SQL SERVER utilisant 'OU' sont évaluées?
WHERE (@Id Is NULL OR @Id = Table.Id)
Si @Id est nulle: l'expression est évaluée à true. La deuxième partie @Id = Table.Id est-elle toujours prise en compte? ou est-ce suffisant que l'expression évalue à vrai étant donné que la première partie est (ce qui est le cas dans C#). Ceci est pertinent en raison de certaines instructions OR beaucoup plus complexes où il est important de savoir si toutes les parties sont évaluées.
MISE À JOUR:
J'ai depuis trouvé cette syntaxe pour être une bonne alternative
WHERE (Table.Id = ISNULL(@Id, Table.Id))
Dans les requêtes complexes les deux parties pourraient être exécutés en parallèle ... – tster