代码之家  ›  专栏  ›  技术社区  ›  Fredou

SQL Server 2005是否在约束中使用短路评估?

  •  1
  • Fredou  · 技术社区  · 15 年前

    如果我在桌子上有这个约束,

     (field1 is null and field2 is not null and dbo.expensivefunction(field2) = field3)
    

    如果我的字段2为空,是否仍将调用函数?

    在SQL Server 2005的约束中,“和”是否等于.NET中的(andalso,&&)的含义?

    1 回复  |  直到 15 年前
        1
  •  1
  •   tvanfosson    15 年前

    SQL Server执行短路操作,但操作的顺序取决于优化器,因此答案可能是。看到这个 blog entry . 在实践中,我使用了像您这样的语句,但没有问题——可能是因为优化器将更简单的检查放在首位,尽管没有保证。