在SQL Server 2005/2008/2008 R2中,我們可以使用SQL Server內建的編輯前200行功能,使用這個功能的本意是簡化Update 的使用,讓開發人員、DBA和不懂T-SQL的一些人能夠通過可視化介面來直接修改資料庫裡的資料。在使用編輯前200行功能的時候,編輯前200行資料,簡便是簡便了,但是簡便了以後更想直接在可視化的頁面裡直接編輯想要編輯的資料,而不是開啟編輯介面後自動讀出來的200條,自動讀出來的200條順序雜亂,本來是一個很好用的強大功能,顯得有些雞肋。在偶然中,發現通過顯示準則窗格、顯示SQL 窗格這樣的一個小技巧來讀取想要讀取的資料,或者對讀取出的資料進行排序,這樣修改資料的時候就簡便多了。廢話少說,給出一個實際案例。現有一個Menu資料表,這個表裡儲存了系統功能表資訊,表結構如下:
SELECT TOP 1000 [FUNCTIONCODE]--菜單編號,主鍵 ,[FUNCTIONNAME]--名稱 ,[FUNCTIONURL]--連結 ,[TYPE]--類型 ,[DESCRIPTION]--描述 ,[ORDERNO]--排序 FROM [dbo].[MENU] |
開啟資料庫後,直接使用編輯前200行功能,如所示:圖 編輯前200行開啟以後讀取MENU裡的資料,如所示:圖 編輯前200行如所示,開啟MENU裡的資料後,由於菜單不是一次添加進資料表裡的,那麼不會根據主鍵列來排序,這樣給直接使用資料庫資料修改菜單資料帶來了不便,不能把一個功能表項目的資料順序的放在一起,後來發現可以使用顯示準則窗格來修改預設讀取的前200行資料的順序,在SSMS裡開啟顯示準則窗格,如所示:圖 使用顯示準則窗格點擊“顯示準則窗格”,開啟介面如所示:圖 顯示準則窗格在顯示準則窗格中,我們首先根據FUNCTIONCODE來排序,再根據ORDERNO來排序,這樣就能把一個菜單的所有資料放在一起,設定完成後,點擊執行SQL,如所示:圖 執行SQL執行完SQL後,其結果如所示:圖 按順序排列的菜單資料
這樣我們就可以按照自己想要的方式來進行修改資料了,而且一個菜單的資料都放在一起,方便了對菜單資料主鍵和排序的修改。
除了使用顯示準則窗格,還可以使用顯示SQL窗格,點擊顯示SQL 窗格,結果如下所示:圖 顯示SQL窗格在顯示SQL窗格中,我們可以使用開發人員和DBA熟悉的T-SQL語句來讀取資料,讀取出的資料直接可以在結果清單裡修改,還可以讀取超過200條的資料,可以使用條件陳述式和Order by的語句,為了和使用準則窗格對應,我們使用如下SQL語句來讀取MENU資料。
SELECT TOP (1000) FUNCTIONCODE, FUNCTIONNAME, FUNCTIONURL, TYPE, DESCRIPTION, ORDERNOFROM MENUORDER BY FUNCTIONCODE ASC, ORDERNO ASC |
這裡最多可以讀取1000條MENU資料,和使用準則窗格讀取的資料結果完全相同的,顯示的介面如所示:圖 使用顯示SQL窗格 除了使用顯示準則窗格、顯示SQL 窗格外,還可以使用顯示視圖窗格,這個是為了哪些對T-SQL不熟悉的準備的一個可視化的操作介面,功能也相當全面,方便擷取SQL語句。 小結
在資料庫產品上,大多數人總是偏愛ORACLE、MYSQL,偏愛ORACLE是因為ORACEL的穩定性和功能的強大,是使用PL-SQL有很多簡便的工具可以使用;偏愛MYSQL是因為這個傢伙算是半免費,體積小,性價比高。SQL Server卻很少得到好評,雖然功能也很強,但是批評的聲音不斷。但是,通過這個小技巧的介紹,逐漸明白SQL Server的功能並不是我們想象的那麼弱,只是有很多好東西、技巧我們沒有去發現和掌握。相較於SQL Server 2000到SQL Server 2005,5~6年才出一個版本,SQL Server 2005到SQL Server 2008這個時間縮短到了3年,這是使用SQL Server的使用者的福音。產品升級時間的縮短同時也帶來了一些問題:如相容性、升級成本、新增功能等等,這些都是需要考慮的因素,本文只是站在純粹的使用者角度來看待這個問題。