可以将视觉工作室的“智能”SQL查询助手关闭吗?

时间:2009-11-10 14:18:56

标签: sql-server visual-studio

在visual studio(2008)的SQL querybuilder窗口中创建此查询时:

 UPDATE       outgoing_messages
 SET                readstatus = 5
 FROM            outgoing_messages INNER JOIN
                     connections ON outgoing_messages.connectionid = connections.connectionid
 WHERE        (outgoing_messages.msgreference = '103') AND (connections.providerid = 9)

Visual Studio通过将其变为:

来更好地掌握它
 UPDATE       outgoing_messages
 SET                readstatus = 5
 FROM            outgoing_messages AS outgoing_messages_1 INNER JOIN
                     connections ON outgoing_messages_1.connectionid = connections.connectionid CROSS JOIN
                     outgoing_messages
 WHERE        (outgoing_messages_1.msgreference = '103') AND (connections.providerid = 9)

而不是用特定的msgreference和connectionid单独记录那条记录,它会更新大量的记录。

现在疯狂的部分是:当使用视觉查询构建器并且我拖放查询时,它会产生完全相同的查询,但现在visual studio不会弄乱它并执行它并且一切都很好。 / p>

如果我再次将其复制并粘贴到新的查询窗口中,则所有窗口都会再次瘫痪。

这个'智能'查询跛子有没有解决方法? (例如关掉它?)

谢谢!

编辑: 附:这已被发布为Microsoft的错误。请开始投票; ^)

这是link to microsoft

3 个答案:

答案 0 :(得分:0)

如果您在UPDATE子句中对表进行别名而不是使用显式名称,那么您是否会遇到同样的问题,例如:

UPDATE       om
SET                readstatus = 5
FROM            outgoing_messages om INNER JOIN
              connections c ON om.connectionid = c.connectionid
WHERE        (om.msgreference = '103') AND (c.providerid = 9)

答案 1 :(得分:0)

微软称他们将在即将推出的VisualStudio(2010)中添加关闭智能sql重新排序的选项

答案 2 :(得分:0)

我遇到了“VS知道更好”的问题。 结束向我的应用程序添加按钮以运行正确的查询。

相关问题