我正在逆向设计一个巨大的存储过程。其中有大量的BEGIN ENDs,并非所有缩进都适当,多层次深,而且我有时间发现哪些BEGIN END对彼此匹配。
有没有一种简单的方法可以找出哪些配对彼此匹配。我知道在Visual Studio中你可以使用ctr +从开放式支架跳到结束支架,并且在SSMS 2008中也是如此。但我正在使用2005。
有什么想法吗?
答案 0 :(得分:5)
在SQL Server 2005中,ctrl +]仍然适用于}
,它只适用于BEGIN END
。 SQL Server 2005不区分已注释的括号和未注释的括号,因此我的解决方案是将所有BEGIN
替换为BEGIN/*{*/
,将所有END
替换为END/*}*/
。< / p>
所以我有这样的事情:
BEGIN/*{*/
BEGIN/*{*/
END/*}*/
END/*}*/
通过这种方式,我能够来回跳转到配对的BEGIN
和END
。
请注意BEGIN TRANSACTION
命令,您不希望它们包含在替换中。
答案 1 :(得分:2)
我会使用一个好的文本编辑器(如Vim)将每个BEGIN替换为{
,将END替换为}
,如下所示:
:%s/\<BEGIN\>/{/g
:%s/\<END\>/}/g
注意,\<
和\>
是正则表达式元字符,以确保您不匹配完整单词以外的任何内容。
然后在正常模式下,将光标放在感兴趣的大括号上,然后按%
键。 Vim会带你去匹配的支架。
完成重新格式化后,请使用原始关键字替换括号字符。