【发布时间】:2017-12-08 11:27:16
【问题描述】:
我在 SQL Server 存储过程中有这样的查询:
IF (@EDITED = 1) AND (EXISTS (SELECT 1 FROM InventarizacijaZurnals WHERE RECORD_UNIQUE_ID=@RECORD_UNIQUE_ID)) ....
我的问题是 - 即使第一条语句是 True,AND 之后的查询部分是否总是会被执行?我知道有些语言会这样做,有些则不会。它在 SQL Server 中是如何工作的?网上好像找不到明确的答案。
【问题讨论】:
-
“我知道一些语言可以做到这一点” 呃,不,不是你说的。
true在or子句中可能发生短路,而false在and子句中可能发生短路。不是true/and。 -
我应该澄清一下,我上面所说的一般是关于短路的。 SQL 实现是否可以做到这一点似乎是实现定义的。另外,我不确定
NULLs 对可行性有何影响。
标签: sql sql-server and-operator