【发布时间】:2011-06-28 15:06:09
【问题描述】:
我在 SQL Server 2008 中手工编写了一个简单的 SQL,如下所示;
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 的逻辑并根据您执行的结果返回不同的结果。
我经常使用查询编辑器来验证我对复杂查询的语法。所以有点担心这样的细微变化会被忽视,但会改变结果。
这是设计师的特色吗?我可以做些什么来改变这种行为吗?
编辑:感谢您指出编辑器所做的更改与上面的不太一样,但查询仍然被修改,尽管结果相同。
谢谢
【问题讨论】:
-
伙计,如果它不断变化的查询,这是一个可怕的想法!
-
做了检查,我正确地解决了:SELECT * FROM Tab1 WHERE (A='1' AND B='1') OR (A='1' AND C='1 ');.使用 2008 版测试,因此它可能取决于其他内容。
-
"在对话框中按下 OK "当我进行语法检查时,我没有得到任何 "OK"。
-
等等,你是 SQL Management Studio 吗?
-
我强烈建议不要在 Management Studio 中使用查询设计器或查询编辑器——它们充满了错误并且缺乏一些基本的 T-SQL 功能。一个类似的 bug 已经开放了将近 6 年:connect.microsoft.com/SQLServer/feedback/details/124819/…
标签: sql sql-server sql-server-2008 ssms