代码之家  ›  专栏  ›  技术社区  ›  Toad

可以关闭Visual Studio的“智能”SQL查询助手吗?

  •  1
  • Toad  · 技术社区  · 15 年前

    在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)
    

    它不是用特定的msgrereference和connectionid来挑选1条记录,而是更新成吨的记录。

    现在最疯狂的部分是:当使用VisualQueryBuilder时,我拖放查询,结果是完全相同的查询,但现在Visual Studio不会处理它并执行它,一切都很好。

    如果我再次复制并粘贴到一个新的查询窗口中,所有内容都将再次被破坏。

    有没有解决这个“智能”查询障碍的方法?(例如,关闭它?)

    谢谢!

    编辑: 另外,这是微软发布的一个bug。请开始投票;^)

    这是 link to microsoft

    3 回复  |  直到 12 年前
        1
  •  0
  •   boydc7    15 年前

    如果在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)
    
        2
  •  0
  •   Toad    15 年前

    微软表示,他们将在即将推出的VisualStudio(2010)中添加关闭智能SQL重新排序的选项。

        3
  •  0
  •   Max    12 年前

    我对“vs更了解”也有同样的问题。 最后将按钮添加到我的应用程序以运行正确的查询。

    推荐文章