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

时间:2009-09-03 18:43:07

标签: sql-server-2005

如果我对表有约束,

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

如果我的field2为null,那么函数是否会被调用?

在sql server 2005的约束中,“和”是否与.Net中的(和,&&)相同?

1 个答案:

答案 0 :(得分:1)

SQL Server执行短路操作,但操作的顺序取决于优化器,因此答案可能就是。见blog entry。在实践中,我已经使用了诸如你之类的语句而没有问题 - 可能是因为优化器首先使用更简单的检查,尽管没有保证。