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

如何仅在SQL Server Management Studio中运行光标所在的语句?

  •  65
  • JosephStyons  · 技术社区  · 15 年前

    作为Oracle用户的toad,我已经习惯了按ctrl+enter并只执行光标下的语句。

    在SQL Server Management Studio中,按F5可运行整个脚本。要只运行当前语句,我必须手动突出显示所需的语句,然后单击F5。

    我真的很烦。有没有人知道一个工具有一个键盘快捷键,可以只在SQL服务器上运行当前语句?我将为这个特性更改工具。

    注:奇怪的是,即使是免费的 Toad for SQL Server 不允许只运行光标下的语句。

    19 回复  |  直到 15 年前
        1
  •  30
  •   jpaugh JotaBe    7 年前

    您可以查看此SSMS 2012加载项。将光标放在要执行的语句中,然后按 CTRL + 换档 + E

    SSMS Executor - https://github.com/devvcat/ssms-executor/releases

    更新:
    项目转移到Github,并重新编写了Addin以支持SSMS 2014、SSMS 2016。(以前,该项目住在codeplex,位于 SSMS Executor - http://ssmsexecutor.codeplex.com/ )

        2
  •  22
  •   wscourge Kiran Balakrishnan    7 年前

    使用 Ctrl键 + 选择一行。 然后使用 F5 运行它。

    虽然它只适用于单线选择,但我仍然觉得它非常有用。

    希望它有帮助!!

        3
  •  17
  •   JosephStyons    9 年前

    好吧,我从这些答案中得到的是“不,那是不可能的”。

    编辑:

    我是这样做的:

    1-下载 SQL Developer

    2-下载 jTDS driver

    3 -跟随 these instructions 向SQL开发人员添加该驱动程序

    4-使用SQL开发人员连接到SQL Server(酷!)

    运行它,生活是美好的

        4
  •  9
  •   Salamander2007    14 年前

    Somebody suggested this features 在devart dbforge上SQL完成(管理工作室的插件),它仍处于开发阶段。让我们希望它已经完成,并且不会在开发过程中半途而废。

        5
  •  5
  •   ercan    15 年前

    注:奇怪的是,即使是免费的蟾蜍 因为SQL Server不允许您运行 只是光标下的语句。

    癞蛤蟆不信守承诺,真让人恼火:

    从蟾蜍帮助: [F9执行]语句的一部分,可以包含一个或多个语句。您可以通过将光标放在语句内或其附近,或通过选择语句来选择语句的部分。 注意:TOAD将所有语句(包括注释)视为“相邻的”,这些语句与光标或彼此之间以少于两行的空行分隔。如果在语句执行过程中发生错误,将显示一条错误消息,允许您忽略错误并继续执行或中止执行。

    我试了无数次,但它只是执行整个脚本。我想在用户支持小组(toadss(at)yahoogroups.com)中搜索它,但雅虎有史以来最愚蠢的搜索工具!它甚至在蟾蜍邮件组中找不到关键字“蟾蜍”,doh!

    我认为蟾蜍是有史以来最好的查询工具,但是缺少这个特性也让我很恼火。

    更新:找到解决方案! 我在Toads邮件组中问了这个问题,得到了答案。与Oracle不同,您必须用关键字分隔SQL Server中的语句 在每个陈述之后。只有这样,F9按钮才能按预期工作,执行当前语句。

        6
  •  5
  •   Galla Balaji    8 年前

    上面的答案帮助我创建了一个快捷方式来执行当前语句而不选择查询

    1点击 工具 gt; 选项 > 环境 gt; 键盘

    2用于 显示命令 包含,设置为 sqlcomplete10.common执行当前状态

    3-要在中使用新快捷方式,请将其设置为 SQL查询编辑器

    4-对于按快捷键(所需快捷键),执行ctrl-enter组合。

    5点击 赋值 . 点击OK。

        7
  •  4
  •   Andomar    15 年前

    我使用一个解决方法:我评论我不使用的查询。可以使用ctrl-k和ctrl-c对突出显示的SQL进行注释。使用ctrl-k,ctrl-u取消注释。这样,您就可以对所有其他查询进行注释,并使用F5执行您感兴趣的查询。

        8
  •  3
  •   DmitryK    15 年前

    我认为仅仅使用管理工作室是不可能的。 但您可以使用键盘快捷方式软件(例如 http://www.autohotkey.com/ )记录一个特殊的序列并分配给热键。 在您的情况下,您需要:

    <home><shift-end><F5>
    

    这将选择当前行并执行它。

        9
  •  2
  •   Jeff Atwood    15 年前

    击中 Ctrl键 - e 文本突出显示时。

        10
  •  2
  •   Kåre Werner Storgaard    14 年前

    在toad for SQL Server中,可以使用以下默认热键执行:

    • F5:在编辑器中执行所有SQL语句
    • F9:在当前光标位置执行SQL语句
    • SHIFT-F9:从光标执行所有SQL语句,包括光标位置的当前语句

    但是,就像“ercan”所写的那样,你需要用“go”来分隔/跟踪每个语句。

    SELECT TOP 5 * FROM accounts
    GO
    
    SELECT TOP 5 * FROM users
    GO
    
    SELECT TOP 5 * FROM contracts
    GO
    
        11
  •  1
  •   Joel Coehoorn    15 年前

    如果需要将手移到鼠标的某个部分,则可以按住Ctrl键,同时按向上或向下箭头键来选择一条线。

        12
  •  0
  •   KM.    15 年前

    您可以始终使用命令行工具sqlcmd和osql。我在Unix命令行中做了很多Sybase工作,使用了一个包装器函数,它将我的命令字符串传递到等价的(我认为它是ISQL?).我以前用过vi,所以也许那时我疯了;-)

        13
  •  0
  •   Shorin    13 年前

    SQL Complete Express Edition内置了此功能。但是如果没有自定义的IntelliSense,就无法获得它。

    (我从2007年的《萨拉曼德尔邮报》上得到了这个)

        14
  •  0
  •   J E    9 年前

    只需选择(突出显示)要运行的单个语句并点击F5。

        15
  •  0
  •   Blue Cross    9 年前

    您可以按如下方式组合这两个工具:从dbforce完成的SQL和auhotkey。

    SQL完成:您可以在光标处执行当前语句,方法是按组合键ctrl shift e

    我使用autohotkey的原因是为了让生活更简单:-)只使用f6执行当前语句,在autohotkey脚本中设置以下代码:

    ;SQL EXECUTE THE CURRENT STATEMENT
    F6::
    Send ^+E
    return
    

    voil_160;只需按F6,就可以在光标处执行任何当前语句。

    但有时,我的大问题是我错误地按了F5而不是F6:D

        16
  •  0
  •   inouttennis2314    6 年前

    如果执行器附加解决方案(在最上面的答案中)不能正常工作,我就让它为我工作(SSMS v17.8.1): 加载项在“工具”下添加了一个命令: 工具>执行内部语句 .

    您可以通过转到为其指定自定义键盘快捷键。 工具>选项>键盘 然后在“show commands containing:”中搜索“execute”,并选择 tools.executeinner语句 . 然后只需在“Press shortcut keys:(按快捷键)”字段中指定所需的击键,然后单击“Assign(分配)”按钮。

        17
  •  0
  •   nzrytmn    6 年前

    我使用了这项工作;当代码没有被注释掉时

    CTRL+K+U

    (此命令突出显示当前查询行),然后

    CTRL+E

    (此运行突出显示的查询)。

    当您希望在其他行之间运行单行查询时,它非常有用,例如:

      Select top 100 * from [dbo].[Order]
    
      Select top 100 * from [dbo].[OrderItem]
    
      Select top 100 * from [dbo].[OrderStatus]
    
        18
  •  0
  •   Roman Pokrovskij Archil Labadze    6 年前

    Redgate的SSMS SQL Prompt扩展可以做到这一点。

    这不是免费的,但根据我的经验,这是值得拥有的。比SSMS开箱即用版本、标签颜色、标签历史(非常有价值!),代码段,单个语句(不仅仅是一行)执行,以及更多。

        19
  •  -1
  •   BGA    9 年前

    以下是我的作品…我使用SSMS 2012

    1-单击“工具”>“选项”>“环境键盘”

    2用于 显示包含以下内容的命令 将它设置为 执行查询

    3-用于 在中使用新快捷方式 ,设置为 SQL查询编辑器

    4用于 按快捷键 ,执行ctrl-enter组合。

    5-单击“分配”。点击OK。