如何在SQL Server Management Studio 2012中查找匹配的开始和结束语句?我有一个很长的存储过程,有多个级别的多页嵌套if语句。 SQL已经格式化。我的问题与this one非常相似,但我使用的是现在使用Visual Studio Shell的SSMS 2012。我想知道MS是否添加了此功能,或者是否有外部工具或SSMS插件可以执行此功能。
否则我将不得不诉诸旧问题中的解决方案。
答案 0 :(得分:19)
如果有人还在寻找答案,那就是 CTRL +] 。
答案 1 :(得分:8)
我似乎能够让BEGIN / END的代码崩溃没问题。在工具>下观察我的设置选项>文本编辑器>的Transact-SQL:
请注意,我启用了智能感知功能,并在工具>下选中了“大纲语句”。选项>文本编辑器> Transact-SQL>智能感知:
行号确实有帮助。如果我折叠包含BEGIN的行,则下一行号是在 END之后的:
答案 2 :(得分:3)
这不是答案,我还没有足够的声誉发表评论。
除了您提到的其他主题中提到的解决方案之外,我认为没有办法。我要做的是,删除END
,再次写END
,它会变灰,与此BEGIN
匹配的END
也会变灰。然后我只搜索代码中的灰色单词。
答案 3 :(得分:2)
CTRL + ] ,用于从BEGIN
跳转到匹配的END
。从BEGIN
跳到匹配END
的相同键。
CTRL + SHIFT + ] 可以选择在BEGIN
和{{1}之间跳转的代码块}。
如果已安装SQL Prompt,请单击END
(BEGIN
),以灰色突出显示匹配的END
(END
)。
答案 4 :(得分:1)
您需要的功能称为Edit.GotoBrace,并且存在于SSMS v 2008和2012中。 它有不同的快捷方式,具体取决于您的ssms的语言版本。我有SSMS2008 EN和SSMS2012德语,我的键盘布局是德语。所以快捷方式是:
SSMS 2008 EN
找到匹配的开始/结束
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中重新定义快捷方式,其中快捷方式管理器是绝对的)