SQL SQL Server

T-SQL搜尋預存程序名稱

蔡宛蓉 2017/12/27 16:55:10
2469

T-SQL搜尋預存程序名稱


簡介

當我們在開發專案時,多多少少一定都會用到資料庫的部分。而有些專案客戶若希望我們能夠去撰寫預存程序(Store Procedure,簡稱SP)則這部分之後要總計以及取得所有SP名稱時,該怎辦呢?理論上也不可能只有撰寫幾支SP的情形,開發過程中既不可能一邊開發一邊記錄,畢竟,在一個專案裡改改刪刪的情形倒也不少見。這時候就會需要透過T-SQL語法幫我們取得我們開發過程中所有的SP總計以及名稱。

作者

蔡宛蓉


1.安裝SQL Server以及實作

  首先,需要先安裝SQL Server,可到這裡(https://docs.microsoft.com/zh-tw/sql/ssms/download-sql-server-management-studio-ssms)下載SSMS。
 
 
 
 
  由於這部分安裝時,需要等待一些時間安裝,建議可以利用這段時間做別的事囉!而當安裝完成後,可以到點選開始,工作列表會有Microsoft SQL Server 2017。
 
 
  但我們要開啟的SQL Server在Microsoft SQL Server Tools 2017 ->  Microsoft SQL Server Manage 2017。
 
 
  一開始畫面會出現連結至伺服器的登入畫面,需輸入"伺服器名稱"、"登入"、"密碼",而要能輸入登入及密碼,驗證的地方需選擇"SQL Server驗證"。輸入完即可連線資料庫。
 
 
在左邊的物件總管點選資料庫,可以看到我們所建立的資料庫。
 
 
  其中,我們看一下TLOG資料庫以及TSHR資料庫的SP數量。很明顯的,TLOG雖然數量不多也不少,但至少還能夠一個一個來總計數量多少、取得名稱。
 
 
  相較於TSHR,從圖中我們可以清楚了解到這份資料庫裡的SP有多少支,若要取得SP名稱所要花費的時間倒也不少。因為數量太多只截出一小部分的圖出來。
 
 
  點擊下圖紅框處的新增查詢,會出現黃色框的畫面,此處可以讓我們進行撰寫SQL語法。
  若我們要針對某資料庫執行SQL語法時,要將下圖紅框處選擇欲要操作的資料庫。而選取資料庫的工具列需要有點擊新增查詢才會顯示。
 
 
  接下來,我們在新增查詢撰寫如下圖SQL語法。  這邊大概說明一下:
DB_NAME() AS '資料庫名稱' => DB_NAME()是取得當下的資料庫名稱,可忽略
sys.procedures => 可查詢相關預存程序資料。
ORDER BY [name] ASC:針對name的欄位坐排序。
 
 
  於下圖顯示資料來看,可以知道TLOG資料庫共有這SP。
 
 
  而從這部分我們可以一次選取以下的SP名稱。比起在物件總管複製SP名稱來得快速。
 
 
 
 
  然後,我們也可以查詢TLOG資料庫裡的SP總共數量。

 2.結論

  由於專案開發結束,總會需要整理一些文件以及檔案等等相關資料,碰到像SP這種的資料數量一多便要在短時間之內整理完成實在是困難!這種時候就只能靠SQL語法來幫忙取得我們要的資料。而SP名稱命名通常都會有固定的命名,例如:usp_為開頭,盡量不要將SP名稱命名為sp_開頭,因為這樣的命名也會將master資料庫的SP也搜尋出來,如果是有要下where條件的話,但通常還是建議不要以sp_為開頭。
蔡宛蓉