2009-11-06 56 views
1

我有我調試的一些大的凌亂SQL程序,他們往往有很多重嵌套括弧:自動摺疊括號的文本編輯器?

SELECT * FROM (SELECT F1,F2 FROM TABLE1 AS X LEFT JOIN 
(SELECT F9,F8 FROM (SELECT F13,F14 FROM TABLE4) AS J INNER JOIN TABLE3 ON...) AS B 
ON X.F1=B.F9) AS X1 

我正在尋找一個編輯器,可以自動標記和可選摺疊/折每個括號設置爲便於閱讀,例如

SELECT * FROM ... AS X1 

SELECT * FROM (SELECT F1,F2 FROM TABLE1 AS X LEFT JOIN ... AS B ON X.F1=B.F9) AS X1 

我可以反覆擊打做到這一點在Visual Studio CTRL-倒班]選擇一組,然後按Ctrl-MH崩潰了。但其中一些內容長達數百行,如果我有一個可以自動標記整個文檔的編輯器,那將會很不錯。

有什麼建議嗎?

回答

1

我不認爲它會做你的摺疊,但如果你使用SQL Server,我會強烈建議SQL Prompt其中包括一個重新格式化SQL的命令。在調試/理解巨大且笨拙的存儲過程時,我發現這是一個巨大的幫助。

1

我需要做類似的事情。我發佈了一個評論和建議請求(你可以說RFC)。鏈接到這裏:Stack Overflow。我很驚訝它不是大多數編輯器的標準功能。我想這個問題是,它看起來比從字符流中分析分隔的文本塊更困難。也許XML和CSS將會使未來更輕鬆地完成這種類型的事情。

0

編輯:沒關係,它不起作用。 )沒有被視爲接近。離開答案讓別人浪費他們的時間去嘗試。

如果您願意拆分這些行以便在一行上只有一個打開或關閉括號,則可以使用Notepad ++中的用戶定義語言,並分別打開和關閉文件夾()。您還可以定義SQL關鍵字和註釋分隔符,以使它們變爲彩色。 Notepad ++當然有內置的SQL,但內置定義不會在括號中摺疊。

1

請參閱HideShow mode for emacs,它在lisp模式下完全符合您的需求。