Ich bezweifle den Wert der Verwendung eines Booleschen Werts in TSQL. Jedes Mal, wenn ich anfing, mir Boolesche und For-Schleifen zu wünschen, wurde mir klar, dass ich mich dem Problem wie ein C-Programmierer und nicht wie ein SQL-Programmierer näherte. Das Problem wurde trivial, als ich den Gang wechselte.
In SQL bearbeiten Sie SETs von Daten. "WHERE BOOLEAN" ist unwirksam, da es das Set, mit dem Sie arbeiten, nicht ändert. Sie müssen jede Zeile mit etwas vergleichen, damit die Filterklausel wirksam wird. Die Tabelle / Ergebnismenge ist eine iEnumerable, die SELECT-Anweisung ist eine FOREACH-Schleife.
Ja, "WHERE IsAdmin = True" ist besser zu lesen als "WHERE IsAdmin = 1".
Ja, "WHERE True" wäre schöner als "WHERE 1 = 1, ...", wenn TSQL dynamisch generiert wird.
und vielleicht kann das Übergeben eines Booleschen Werts an einen gespeicherten Prozess eine if-Anweisung lesbarer machen.
Aber meistens, je mehr IFs, WHILEs und Temp-Tabellen Sie in Ihrer TSQL haben, desto wahrscheinlicher ist es, dass Sie sie umgestalten.