我正在逆向工程一個巨大的存儲過程。它裏面有很多BEGIN ENDs,並不是所有的縮進都正確,層次也很深,而且我有時間找到哪些BEGIN END對彼此匹配。如何在複雜的SQL Server查詢中查找匹配的BEGIN END對?
有沒有一種簡單的方法來找出哪些對彼此匹配。我知道在Visual Studio中,你可以使用ctr +]從開始支架跳到右側支架,而在SSMS 2008中也是這樣。但是我正在使用2005.
任何想法?
我正在逆向工程一個巨大的存儲過程。它裏面有很多BEGIN ENDs,並不是所有的縮進都正確,層次也很深,而且我有時間找到哪些BEGIN END對彼此匹配。如何在複雜的SQL Server查詢中查找匹配的BEGIN END對?
有沒有一種簡單的方法來找出哪些對彼此匹配。我知道在Visual Studio中,你可以使用ctr +]從開始支架跳到右側支架,而在SSMS 2008中也是這樣。但是我正在使用2005.
任何想法?
在SQL Server 2005中,ctrl +]仍然適用於}
,它只適用於BEGIN END
。 SQL Server 2005不區分註釋括號和未註釋的括號,所以我的解決方案是用BEGIN/*{*/
替換所有BEGIN
s,並用END/*}*/
替換所有END
s。
所以我有這樣的事情:
BEGIN/*{*/
BEGIN/*{*/
END/*}*/
END/*}*/
有了,我能跳來回配對BEGIN
和END
。
請注意BEGIN TRANSACTION
命令,但不希望它們包含在替換中。
我會用一個不錯的文本編輯器(如VIM),以取代各自開始{
與}
末,就像這樣:
:%s/\<BEGIN\>/{/g
:%s/\<END\>/}/g
注意,\<
和\>
是正則表達式元字符,以確保你不」除了完整的單詞以外,不匹配任何內容
然後在正常模式下,將光標放在感興趣的大括號上,並點擊%
鍵。 Vim會帶你到相應的支撐。
完成重新格式化以達到您的滿意度時,請將大括號替換爲其原始關鍵字。
這是一個該死的好主意。謝謝。 – richard
我可以推薦你用一個工具來格式化SQL代碼,例如:http://www.dpriver.com/pp/sqlformat.htm – Lamak
@Lamak:謝謝,但這並沒有真正解決我的問題。整潔的工具,但。 – richard