快捷方式/摘录以选择代码块


8

我在Windows 10上使用SQL Server Management Studio2016。我厌倦了使用shift / ctrl +上/下/右/左键选择要运行的代码。我想知道是否有快捷方式/代码段来选择用空白行与其他代码隔开的代码块?

这是一个代码示例:

select *
from tab1

select *
from tab2

select *
from tab3

说,我的光标在中间块内,选择中间块的最佳方法是什么?


1
JetBrains DataGrip(按Ctrl + Enter)。也便宜。黑暗的UI。
Nelz

Answers:


4

我不隶属于Red-Gate,但我想指出的是,如果您按Shift-F5键,则当您拥有SQL Prompt的新副本时,光标处于打开状态的查询将被标记为绿色并执行。

它确实为我节省了很多按键。


非常感谢您的回答!我迅速尝试了sql,真是太神奇了!试用后,我会考虑购买的!
杰森

1
请注意,由于您不能使用此方法来复制已执行的代码块,因此实际上并没有选择代码。
Thomas Rushton

4

使用Autohotkey,我能够开发一种选择代码块的解决方案,这是我拥有的脚本:

!b::

send ^f

sendraw ^\r$

send {F3}

send +{F3}

send {Esc}

send {down}

send ^{=}

return

具体来说,按Alt + B将调用此脚本,并且脚本将选择光标所在的代码块。请注意,必须用空白行将代码块与其他代码块分开,并使用代码块内部不能有空白行。

关于脚本的关键步骤是

  • 使用正则表达式“ ^ \ r $”定位光标上方和下方的空白行

  • 光标一一移动到这两个空白行

  • 使用ctrl + =选择这两个空行之间的代码块。

请注意,!/ ^ / +分别是alt / ctrl / shift。


我不知道您可以使用AutoHotKey来做到这一点。比SQL Prompt少了很多。感谢您的发表。
Henrik Staun Poulsen

3

快速选择SSMS中的代码块的一种方法是使用-SQL语句中前导关键字旁边的按钮(例如SELECT,UPDATE,DELETE,WITH等)来最小化代码,然后突出显示该行并按F5以执行它。

在此处输入图片说明

根据您的SSMS版本(在这种情况下,显然首选新版本),还有一些键盘快捷键可用于折叠/展开部分。Simon Hellings先前的响应提供的键盘快捷键链接暗示已经设置了热键,但是我无法确认它们是否确实有效。但是,您可以设置一些自定义热键来执行以下操作:

  1. 我们关注的用于设置热键的功能位于Edit-> Outlining菜单选项下: 在此处输入图片说明

  2. 要设置热键,请导航至Tools-> Options...-> Environment-> Keyboard-> Keyboard。在Outlin显示包含以下命令”框中键入。然后为指定新的快捷键组合Edit.ToggleAllOutliningEdit.ToggleOutliningExpansion然后按Assign在此处输入图片说明

  3. 现在,检查按“确定”后使用的快捷方式,您的快捷键应该可以正常工作。如您所见,我将我的分配给CTRL+ALT+Left ArrowCTRL+ALT+Right Arrow,但是您可以使用任何您想要的: 在此处输入图片说明

最后,如果这不起作用,则可能必须切换到其他SQL客户端。听起来您想要的功能类似于CTRL + ENTER在Oracle SQL Developer中执行Oracle PL / SQL块。您可以使用Oracle SQL Developer通过第三方数据库JDBC驱动程序(ref)连接到SQL Server ,但我不建议这样做。


是的,仅此一项就足以安装Toad并使用F9。蟾蜍确实有自己的怪癖。
crokusek

感谢您的回复!不使用鼠标如何折叠树节点?
杰森

@Jason-我已经使用键盘快捷键更新了答案。您需要更新版本的SSMS,因为并非如我所提供的URL链接所示,此功能并非在所有版本上都可用。
John Eisbrener

@JohnEisbrener,谢谢您的帮助,我将检查它们!
杰森

@JohnEisbrener,我正在尝试测试您建议的新键盘快捷键,但它们都不适合我。我正在使用SSMS的最新版本,即13.0.16106.4。您是否曾经亲自测试过它们?
杰森

2

根本不要使用up/ down/ right/ left键来选择要运行的代码。

假设可以使用计算机鼠标,请执行以下操作:

  1. 使用计算机的鼠标将光标移动到要包含的第一个字符。
  2. 接着按住,并继续按住Ctrl被列入键,然后将鼠标移动到包括最后一个字符。
  3. 继续按住Ctrl键,然后E按键将执行突出显示的文本。

如果要删除刚刚执行的代码,则应继续按住Ctrl键,然后Delete按键。

我想可能有人创建了一个工具来自动执行此操作。


感谢您的回复!我知道如何使用Ctrl / Shift键和鼠标来选择代码,并且与快捷键/代码段相比感觉有点慢。您是否知道任何可以自动选择代码的快捷键/代码片段?
杰森

4
@RLF,我会(无论是有意还是无意,不。)奖励与成功曳的给予好评的答案
丹尼尔Hutmacher

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.