尋找IDE for sql


某天早晨,我問一個程序員:“如果你接受了一個修改一個存儲過程的任務,那麼你會如何一步步的完成這個工作"?他的回答是:“先啓動vss,找到這個文件,然後用‘查詢分析器’修改,調試,然後提交”。

 

都是些什麼阿貓阿狗的啊。vss就不怎麼樣了,用它來定位文件是很麻煩的。通過查詢分析器修改sql也很老套。並且這個工具沒有代碼提示,沒有重構支持,也沒有TDDsql開發是應用開發的不可或缺的一部分,和它起到的作用相比,來自業界對sql的支持是非常不夠的。尤其是缺乏一個高效率的IDE

 

b.                sql 語言終於升艙了

幸運的是,這樣的日子就要結束了。VS2010的推出讓sql可以享受如同C#IDE了。微軟這幾年非常喜歡提一個組合詞 first-class(頭等艙)——如果把VS2010當成飛機的話,那麼坐在頭等艙的,確定是C#無疑VS2010的推出,新增加了兩個頭等艙乘客——F#SQL。是的,還有SQL語言。就是說,SQL 不必在和什麼查詢分析器,SQL PROMPTOR,甚至notepad這些雞零狗碎的軟件打交道了。

 

c.                 具體特性

 

IDE 能夠給我們帶來什麼?不外乎是 deploy project navigatorrefactorIntellisense TDD。採用VS2010,這些都有了。要大氣!

 

現在SQL 可以如同C#那樣,有工程文件了。工程文件是很多年前的概念了,它把離散的文件組合到一起。這樣,典型的一個應用產品,就會有兩個工程文件,應用程序工程,數據庫工程(Database Project)。兩者工程構成解決方案文件(solution)。即使沒有采用c#dotnet語言開發,比如delphi,也可以從vs2010Database Project獲益。因爲Database Project和應用語言無關,僅僅和SQL語言有關。只要是開發存儲過程、表、視圖、函數等都可以用。好像SQL 2005 Management Studio 也有工程文件。不過有了vs2010 ,何必用這樣的爲開發者充門面的東西呢,SQL 2005 Management StudioDBA用的。開發者要用 vs2010。採用Database Project也不必從頭開始。 創建了Database Project後,VS2010可以Import script,或者Import from Database——保護現有的開發資源嘛。

 

Intellisense 代碼提示也是Ok了。什麼表,存儲過程和函數以及它們的參數都是可以提示的。重構雖然不多,但是可以做rename,這是最常用的重構了。比這更好的,refactor會有一個日誌記錄叫做refactor log,通過它可以更好的自動發佈。鑑於發佈是比較複雜和強大的,因爲會另外說明。

 

要修改文件,首先要找到文件,利用ide的查找文件必須要快——不能在這些枝節的工作上浪費時間。查找文件到底有多重要?可以說很多人沒有dpackalt+U,連程序都不想寫了。dpackVisual studio的一個文件查找插件,alt+U是查找文件的快捷鍵。現在VS2010可以繼續使用dpack來做文件查找。當然內置的查找也有增強。

 

Schema comparor/data comparor 也做的不錯。可以對數據庫和Database Project之間做 結構和數據對比,查看差異。

 

d.                我認爲還有一個令人興奮的特性——數據庫的聲明型升級。注意我的用詞是“興奮”。這2年來讓我興奮的軟件技術不多,比如everything這個小工具軟件讓我興奮,現在"聲明型數據庫升級"是第二個。所謂的“聲明型升級”,就是說,我告訴工具,升級前數據庫是什麼樣子,升級後的數據庫是什麼樣子,然後中間需要做什麼樣的修改,由工具搞定。和聲明型升級對應的是過程型升級——告訴工具,應該如何一步步的從現在的數據庫變成新的數據庫。我在2003年曾經考慮過這個聲明型升級的做法,但是種種原因,沒有做到。前面提到,因爲比較複雜,專文說明。

e.                應用和代價

可以在需要數據庫開發的項目中使用,不管是c/s,還是b/s,反正需要數據庫開發的,都可以用。代價是現在的電腦恐怕很多需要換掉——vs2010吃內存,吃CPU週期啊。

 

f.                  支持 Sql Server 2000 嗎?

看起來:vs2010並不支持sql2000的工程模板,僅僅支持20052008

直接改數據庫爲sql2000的,deploy會報錯:說明需要一個對應版本的DatabaseSchemaProvider 

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.TSqlTasks.targets(120,5): Error Deploy01234: The source database schema provider Sql100DatabaseSchemaProvider could not be translated to provider Sql80DatabaseSchemaProvider. Deployment cannot continue.

vs2008可以支持sql2000但是僅僅作爲sql的容器,而在vs2010纔有了 Intellisense, build-time validation, automatic deployment 

 

發佈了4 篇原創文章 · 獲贊 0 · 訪問量 2303
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章