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