SQL Server 2008查询编辑器更改查询逻辑

Siv*_*esh 8 sql sql-server ssms sql-server-2008

我在SQL Server 2008中手工编写了一个简单的SQL,如下所示;

SELECT * FROM Tab1 WHERE A='1' AND (B='1' OR C='1');

懒惰我在查询编辑器中打开此查询以验证语法并在对话框上按下确定而不进行任何更改.

我注意到查询编辑器已将我的查询更改为:

SELECT * FROM Tab1 WHERE A='1' AND (B='1') OR (C='1');

显然,这会改变SQL的逻辑并根据您执行的操作返回不同的结果.

我经常使用查询编辑器来验证复杂查询的语法.所以有点担心像这样的微妙变化会变得没有意义,但会改变结果.

这是设计师的特色吗?我能做些什么来改变这种行为吗?

编辑:感谢您指出编辑器所做的更改与上面的完全不同,但仍然会修改查询,尽管结果是相同的.

谢谢

Adr*_*iro 3

我尝试在查询设计器中复制此内容,但结果略有不同。我输入的内容与你相同:

SELECT * FROM Tab1 WHERE A='1' AND (B='1' OR C='1');
Run Code Online (Sandbox Code Playgroud)

并得到这个:

SELECT     *
FROM         Tab1
WHERE     (A = '1') AND (B = '1') OR
                      (A = '1') AND (C = '1')
Run Code Online (Sandbox Code Playgroud)

不得不说,结果是一样的,但是我们都可以看到这里有一条路。另外,我不喜欢(A = '1')复制。哎呀,我想要我编码的代码!

明智的一句话:我从来没有在 SQL Server Management Studio 中格式化我的查询。您是否看到它对您的视图代码做了什么?我恨它。我只是在其他地方编码并在完成后粘贴到短信中。