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

Jos*_*ons 82 database sql-server editor

作为Oracle用户的长期Toad,我已经习惯了按Ctrl + Enter并且只执行光标下的语句.

在SQL Server Management Studio中,按F5运行整个脚本.要仅运行当前语句,我必须手动突出显示我想要的语句,然后按F5.

这对我来说真的很烦人.有没有人知道一个带有键盘快捷键的工具只能在SQL Server上运行当前语句?我会为这一个功能更改工具.

注意:奇怪的是,即使是免费的Toad for SQL Server也不允许你只运行游标下的语句.

Sta*_*nov 34

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

SSMS执行者 - https://github.com/devvcat/ssms-executor/releases

更新:
项目移至github并重新编写插件以支持SSMS 2014,SSMS 2016.(之前,该项目存在于Codeplex,SSMS Executor - http://ssmsexecutor.codeplex.com/.)

  • 嗨**samp**我正在为SSMS2014重新设计工具.准备好后会通知您. (3认同)
  • 这在SSMS2012中对我来说非常好用,但现在我正在运行SSMS2014而我真的很想念它!谁知道SSMS2014解决方案? (2认同)

小智 29

使用Ctrl+ KU选择一条线.然后用F5它来运行它.

虽然它只适用于单行选择,但我发现它非常有用.

希望能帮助到你!!

  • 嘿,这很方便,对于一个班轮。谢谢 (2认同)
  • CTRL-E 在 SSMS 18.5 中执行文件中的整个脚本 (2认同)

Jos*_*ons 18

好的,所以我从所有这些答案中得到的是"不,那是不可能的."

编辑:

这是我能够做到这一点的方式:

1 - 下载SQL Developer

2 - 下载jTDS驱动程序

3 - 按照以下说明将该驱动程序添加到SQL Developer

4 - 使用SQL Developer连接到SQL Server(很酷!)

5 - 运行它,生活是美好的

  • 我不确定如何将其视为答案,因为这些都基于Oracle工具.这个问题与SSMS有关 (3认同)
  • [DBeaver](https://dbeaver.jkiss.org/)也允许此查询之间; ; 执行.它比SQL Developer更强大 (2认同)
  • @Jacques,因为这在 SSMS 中工作并不容易,我很高兴有这个答案,对我来说,这似乎是最好的(通常我的查询不是单行的,我不喜欢在其中编写复杂的查询)一行只是为了让 CTRL+KU 工作...) (2认同)
  • 您实际上可以使用 SQL Developer 来运行 MSSQL-Server 查询。我认为这不是一个好主意,但微软为如此糟糕的用户体验感到羞耻。 (2认同)

Sal*_*007 9

有人在Devart dbForge SQL Complete(管理工作室的插件)上建议了这个功能,它仍处于开发阶段.让我们希望它已经完成,并且不会在开发过程中被抛弃.

  • 我刚安装了Sqlserver14(?)的免费版本,它似乎工作.[Devart page](https://www.devart.com/dbforge/sql/sqlcomplete/editions.html) (2认同)

erc*_*can 6

注意:奇怪的是,即使是免费的Toad for SQL Server也不允许你只运行游标下的语句.

TOAD没有坚持它所承诺的东西真的很烦人:

从TOAD帮助:[F9执行]语句的一部分,可以包含一个或多个语句.您可以通过将光标放在语句内或附近,或通过选择语句来选择语句的一部分.注意:Toad认为"邻近"所有语句(包括注释)与光标分开或彼此少于两个空行.如果在语句执行期间发生错误,则会显示一条错误消息,允许您忽略该错误并继续或中止执行.

我尝试了几百万次,但它只是执行整个脚本.我想在用户支持小组(toadss(at)yahoogroups.com)中搜索它,但雅虎有史以来最愚蠢的搜索工具!它甚至无法在toad邮件组中找到关键字"toad",DOH!

我认为TOAD是有史以来最好的查询工具,但缺乏这个功能真的让我很烦.

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


nzr*_*tmn 6

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

Ctrl + K + U

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

Ctrl + E

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

当您想在其他一些行之间运行单行查询时,它很有用,例如:

  Select top 100 * from [dbo].[Order]

  Select top 100 * from [dbo].[OrderItem]

  Select top 100 * from [dbo].[OrderStatus]
Run Code Online (Sandbox Code Playgroud)


And*_*mar 5

我使用了一种解决方法:我评论我没有使用的查询。您可以使用 CTRL-K、CTRL-C 来注释您突出显示的 SQL。使用 CTRL-K、CTRL-U 取消注释。这样,您可以评论所有其他查询,并使用 F5 执行您感兴趣的查询。

  • 这是一个完全的屁股痛。为什么 SQL 编辑器要让我注释掉我不想要的所有内容?我不能在不抓住鼠标或按“Shift+Up”35 次的情况下肯定地说“运行这个命令”吗? (8认同)
  • 只是为了澄清,感谢您的回答;我很感激。我真的只是在抱怨 SQL Server Mgmt Studio 界面。 (5认同)
  • 如果您找到更好的方法,请务必在此处发布:) (2认同)

Dmi*_*ryK 5

我认为仅使用管理工作室不可能做到这一点。但是您可以使用键盘快捷键软件(例如http://www.autohotkey.com/)来记录特殊序列并将其分配给热键。根据您的情况,您需要:

<home><shift-end><F5>
Run Code Online (Sandbox Code Playgroud)

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

  • 但是,这不会选择整个当前(多行)块。 (9认同)

小智 5

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

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

2 - 对于包含的Show命令,将其设置为SqlComplete10.Common_ExecuteCurrentStatement

3 - 对于"使用新快捷方式",将其设置为SQL查询编辑器

4 - 对于按快捷键(所需的快捷键),执行Ctrl-Enter组合.

5 - 单击" 分配".单击"确定".