Codifiqué manualmente un SQL simple en SQL Server 2008 como se muestra a continuación;SQL Server 2008 Query Editor cambia la lógica de consulta
SELECT * FROM Tab1 WHERE A='1' AND (B='1' OR C='1');
ser perezoso abrí esta consulta en el Editor de consultas para validar la sintaxis y presioné OK en el cuadro de diálogo sin realizar ningún cambio.
me di cuenta que el Editor de consultas había cambiado mi consulta a:
SELECT * FROM Tab1 WHERE A='1' AND (B='1') OR (C='1');
claramente esto cambia la lógica del SQL y devuelve resultados diferentes dependiendo de cuál se ejecuta.
Uso de forma rutinaria el Editor de consultas para validar mi sintaxis en consultas complejas. Por eso estaba un poco preocupado de que un cambio tan sutil como este se fuera a unir, pero cambiaría el resultado.
¿Es esta una característica del diseñador? ¿Hay algo que pueda hacer para cambiar este comportamiento?
EDITAR: Gracias por señalar que los cambios realizados por el editor no son los mismos que los de arriba, pero aún la consulta se modifica aunque los resultados son los mismos.
Gracias
Hombre, eso es un pensamiento aterrador si sus consultas cambiantes! – Limey
Hice una comprobación, y se resolvió correctamente para mí: SELECCIONAR * FROM Tab1 DONDE (A = '1' Y B = '1') O (A = '1' Y C = '1') ;. Probado con la versión 2008, por lo que podría depender de otra cosa. – MicSim
"presionó Aceptar en el cuadro de diálogo" No obtengo ningún "OK" cuando compruebo la sintaxis. – Jimbo