SQL存儲(chǔ)過程分為三類,下面將為您詳細(xì)介紹這三類SQL存儲(chǔ)過程,供您參考,如果您對(duì)此有興趣的話,不妨一看,相信對(duì)您會(huì)有所啟迪。
SQL存儲(chǔ)過程:
系統(tǒng)存儲(chǔ)過程:(System stored Procedure)sp_開頭,為SQLSERVER內(nèi)置存儲(chǔ)過程。
擴(kuò)展存儲(chǔ)過程:(Extended stored Procedure),也就是外掛程序,用于擴(kuò)展SQLSERVER的功能,以sp_或者xp_開頭,以DLL的形式單獨(dú)存在。
(系統(tǒng)存儲(chǔ)過程和擴(kuò)展存儲(chǔ)過程都是在master數(shù)據(jù)庫(kù)中。sp_開頭的可是全局的,任何一個(gè)數(shù)據(jù)庫(kù)都可以直接調(diào)用的。)
系統(tǒng)存儲(chǔ)過程主要分為以下幾類:
目錄存儲(chǔ)過程,例如:
sp_columns 返回當(dāng)前環(huán)境中可查詢的指定表或視圖的列信息。
sp_tables 返回當(dāng)前環(huán)境下可查詢的對(duì)象的列表(任何可出現(xiàn)在 FROM 子句中的對(duì)象)。
sp_stored_procedures 返回當(dāng)前環(huán)境中的存儲(chǔ)過程列表。
復(fù)制類存儲(chǔ)過程,例如:
sp_addarticle 創(chuàng)建項(xiàng)目并將其添加到發(fā)布中。此存儲(chǔ)過程在發(fā)布服務(wù)器的發(fā)布數(shù)據(jù)庫(kù)上執(zhí)行。
安全管理類存儲(chǔ)過程,例如:
sp_addrole 在當(dāng)前數(shù)據(jù)庫(kù)創(chuàng)建新的 Microsoft® SQL Server™ 角色。
sp_password 添加或更改 Microsoft® SQL Server™ 登錄的密碼。
分布式查詢存儲(chǔ)過程,例如:
sp_foreignkeys 返回引用主鍵的外鍵,這些主鍵在鏈接服務(wù)器中的表上。
sp_primarykeys 返回指定遠(yuǎn)程表的主鍵列,每個(gè)鍵列占一行。
擴(kuò)展存儲(chǔ)過程:
xp_sendmail 向指定的收件人發(fā)送郵件和查詢結(jié)果集附件。
xp_startmail 啟動(dòng) SQL 郵件客戶端會(huì)話。
xp_cmdshell 以操作系統(tǒng)命令行解釋器的方式執(zhí)行給定的命令字符串,并以文本行方式返回任何輸出。授予非管理用戶執(zhí)行xp_cmdshell 的權(quán)限。
用戶定義的存儲(chǔ)過程:(User-defined stored Procedure),這個(gè)就是用戶在具體的數(shù)據(jù)庫(kù)中自己定義的,名字最好不要以sp_和xp_開頭,防止混亂。
注意事項(xiàng):
1.在存儲(chǔ)過程中,有些建立對(duì)象的語(yǔ)句是不可使用的:create default,create trigger,create procedure,create view,create rule.
2.在同一數(shù)據(jù)庫(kù)中,不同的所有者可以建立相同名稱的對(duì)象名。例如:a.sample,b.sample,c.sample三個(gè)數(shù)據(jù)表可以同時(shí)存在。如果存儲(chǔ)過程中未指明對(duì)象的所有者(例如存儲(chǔ)過程中的語(yǔ)句select * from sample,這句中的sample沒有指明所有者),在執(zhí)行的過程中默認(rèn)的所有者查找順序是:相應(yīng)的存儲(chǔ)過程的建立者->相應(yīng)數(shù)據(jù)庫(kù)的所有者。如果這個(gè)查找過程中沒有把所有者確定下來(lái),系統(tǒng)就要報(bào)錯(cuò)。
(這里我額外插一句:如果需要嚴(yán)密的數(shù)據(jù)操作,在任何操作中盡量加上所有者,例如leijun.sample)
3.在存儲(chǔ)過程名稱前邊添加?;蛘撸#?,所建立的存儲(chǔ)過程則是“臨時(shí)存儲(chǔ)過程“(#是局部臨時(shí)存儲(chǔ)過程,##是全局臨時(shí)存儲(chǔ)過程)。
該文章在 2011/5/4 17:40:47 編輯過