Я вручную закодировал простой SQL в SQL Server 2008, как показано ниже:
SELECT * FROM Tab1 WHERE
A = '1' AND (B = '1' OR C = '1');
Из-за лени я открыл этот запрос в редакторе запросов, чтобы проверить синтаксис, и нажал OK в диалоговом окне, не внося никаких изменений.
Я заметил, что редактор запросов изменил мой запрос на:
SELECT * FROM Tab1 WHERE A = '1' AND (B = '1') OR (C = '1');
явно это меняет логика SQL и возвращает разные результаты в зависимости от того, какой из них вы выполняете.
Я обычно использую редактор запросов для проверки синтаксиса сложных запросов. Так что немного волновался, что такое тонкое изменение не заметит, но изменит результат.
Это особенность дизайнера? Могу ли я что-то сделать, чтобы изменить это поведение?
РЕДАКТИРОВАТЬ: Спасибо за указание на то, что изменения, сделанные редактором, не совсем такие же, как указано выше, но все же запрос изменен, хотя результаты такие же.
Спасибо