Работает ли «OR» comparaison как vb. Я имею в виду, если он проверяет каждый или, если первый из них является ложнымЯвляется ли «OR» в SQL-коротком замыкании?
как
DECLARE @var1 bit;
SET @var1=1
DECLARE @var2 bit;
SET @var2=1
(@var1=1 or @var2=1)
AND ...
Итак, @var равно 1, нам не нужно, чтобы проверить var2, но SQL Server будет делать проверку ?
Его об оптимизации запроса (и памяти сервера)
танк вам
http://dba.stackexchange.com/questions/5333/ логические операторы-и-в-условии-и-порядок-условия-в-где –
VB 'Or' на самом деле ** не ** короткое замыкание и * будет * оценивать оба условных выражения. Сравните с 'OrElse' в VB. Единственный раз, когда коротко замыкающий (или не) * действительно * имеет значение * в терминах семантики *, - это когда побочные эффекты, включая Исключения, допускаются в условных выражениях, и это еще один вопрос: «Позволяет ли SQL Server побочные эффекты в условные?» –
@pst: Хотя причина, по которой OP требует короткого замыкания, для производительности, которая является действительной причиной, связанной с побочным эффектом :) – mellamokb