16

如何在 SQL Server Management Studio 2012 中查找匹配的开始和结束语句?我有一个很长的存储过程,其中包含多个级别的多页嵌套 if 语句。SQL 已经格式化。我的问题与这个问题非常相似,但我使用的是 SSMS 2012,它现在使用 Visual Studio Shell。我想知道 MS 是否添加了此功能,或者是否有外部工具或 SSMS 插件可以做到这一点。

否则我将不得不求助于旧问题中的解决方案。

4

5 回答 5

32

如果有人仍在寻找答案,那就是CTRL+]

于 2016-09-15T18:31:29.227 回答
11

我似乎能够让 BEGIN / END 的代码崩溃没问题。在工具 > 选项 > 文本编辑器 > Transact-SQL 下观察我的设置:

在此处输入图像描述

请注意,我启用了 IntelliSense,并在“工具”>“选项”>“文本编辑器”>“Transact-SQL”>“智能感知”下选中了“大纲语句”:

在此处输入图像描述

行号真的很有帮助。如果我折叠包含 BEGIN 的行,则下一个行号是END之后的行:

在此处输入图像描述

于 2012-08-30T22:53:40.063 回答
6

CTRL+用于从匹配]跳转。从.跳转到匹配的相同键。BEGINENDBEGINEND

CTRL++在SHIFT和之间]跳转时选择代码块。BEGINEND

如果您已安装 SQL Prompt,单击BEGIN( END),将匹配的END( BEGIN) 突出显示为灰色。

于 2019-09-26T17:35:24.413 回答
5

这不是答案,我还没有足够的声誉发表评论。

除了您提到的另一个主题中指出的解决方案之外,我认为没有办法。我所做的是,删除END,再次写入END,它会变灰,BEGIN 与此匹配的END也会变灰。然后我只是在代码中搜索灰色单词。

于 2012-08-30T22:08:04.337 回答
2

您需要的功能称为 Edit.GotoBrace,并且存在于 SSMS v 2008 和 2012 中。它具有不同的快捷方式,具体取决于您的 ssms 的语言版本。我有 SSMS2008 EN 和 SSMS2012 German,我的键盘布局是德语。所以快捷方式是:

SSMS 2008 中文

只需找到匹配的开始/结束

Edit.GotoBrace Text Editor::Ctrl+´

相同,但也扩展了选择

Edit.GotoBraceExtend Text Editor::Ctrl+Shift+´

SSMS 2012 德语

Edit.GotoBrace (Bearbeiten.GehezuKlammer) Text-Editor::Ctrl+´

Edit.GotoBrace (Bearbeiten.GehezuKlammer) Text-Editor::Ctrl+9

Edit.GotoBraceExtend (Bearbeiten.ErweiternbisKlammer) Text-Editor::Ctrl+Shift+´

Edit.GotoBraceExtend (Bearbeiten.ErweiternbisKlammer) Text-Editor::Ctrl+Shift+9

在 SSMS 2012 中,您可以使用本机键盘快捷方式管理器来查看/更改此命令或任何其他命令的快捷方式。但是:本机命令有一个缺点:您必须在开始/结束时才能跳转到配对标记。

我为 ssms 开发了一个免费插件,并实现了昨天改进的功能,允许从嵌套代码中的任何位置跳转到父开始/结束标记。它将在下一个版本中提供。所以如果你喜欢我的想法 - 等到下一个版本。加载项称为 SSMSBoost。我还用它来快速找到您的问题的答案: - 它具有“转储 SSMS 快捷方式”和“转储 SSMS 命令”功能,它列出了 ssms 中所有可用功能的完整列表(并且它允许在SSMS2008,没有快捷方式管理器)

于 2012-08-30T22:15:16.120 回答