【超實用】SQL Server兩個常用的系統存儲過程
在平時的使用中,但需要看表結構以及存儲過程的定義語句時,你是不是這樣做的?
看表結構
看存儲過程內容
那么……
你一定需要下面的這種方法。
首先需要了解數據庫中的一種對象:存儲過程(Stored Procedure),簡稱SP。
微軟SQL Server幫助文檔中,關于存儲過程的定義如下:
SQL Server 中的存儲過程是由一個或多個 Transact-SQL 語句或對 Microsoft .NET Framework 公共語言運行時 (CLR) 方法的引用構成的一個組。
過程與其他編程語言中的構造相似,這是因為它們都可以:
- 接受輸入參數并以輸出參數的格式向調用程序返回多個值。
- 包含用于在數據庫中執行操作的編程語句(這包括調用其他過程)。
- 向調用程序返回狀態值,以指明成功或失敗(以及失敗的原因)。
簡單來說,存儲過程就是一組執行一定邏輯的SQL語句,執行存儲過程就是執行這組語句。
存儲過程有四種:
- 系統
- 用戶定義
- 臨時
- 擴展的用戶定義過程
下面,我們來看看怎么通過系統存儲過程來實現上面的操作。
1.SP_HELP
功能:報告有關數據庫對象(sys.sysobjects 兼容視圖中列出的所有對象)、用戶定義數據類型或某種數據類型的信息。
使用示例:(其中E_01為數據庫中的表)
通過這個系統SP,我們可以很清楚的看到這個對象(E_01)的信息,比如所有者,對象類型,創建時間,列信息(各個列數據類型,長度,精度,排序規則等),是否有自增列,主鍵以及索引約束等信息。
2.SP_HELPTEXT
功能:顯示用戶定義規則的定義、默認值、未加密的 Transact-SQL 存儲過程、用戶定義 Transact-SQL 函數、觸發器、計算列、CHECK 約束、視圖或系統對象(如系統存儲過程)。
使用示例:(其中SPC_01為數據庫中的用戶定義存儲過程)
通過這個系統SP,我們可以查看對應存儲過程(函數、觸發器、計算列、約束、視圖等系統對象)對應的定義語句。(注意,前提是未加密)
好了,是不是很簡單?