久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數(shù)據(jù)庫中使用存儲過程的實例

143次閱讀
沒有評論

共計 2388 個字符,預計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章將為大家詳細講解有關(guān)數(shù)據(jù)庫中使用存儲過程的實例,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

數(shù)據(jù)庫中使用存儲過程的實例

什么是存儲過程

如果你接觸過其他的編程語言,那么就好理解了,存儲過程就像是方法一樣。

竟然他是方法那么他就有類似的方法名,方法要傳遞的變量和返回結(jié)果,所以存儲過程有存儲過程名有存儲過程參數(shù)也有返回值。

存儲過程的優(yōu)點: 

存儲過程的能力大大增強了 SQL 語言的功能和靈活性。

可保證數(shù)據(jù)的安全性和完整性。

通過存儲過程可以使沒有權(quán)限的用戶在控制之下間接地存取數(shù)據(jù)庫,從而保證數(shù)據(jù)的安全。

通過存儲過程可以使相關(guān)的動作在一起發(fā)生,從而可以維護數(shù)據(jù)庫的完整性。

在運行存儲過程前,數(shù)據(jù)庫已對其進行了語法和句法分析,并給出了優(yōu)化執(zhí)行方案。這種已經(jīng)編譯好的過程可極大地改善 SQL 語句的性能。

可以降低網(wǎng)絡(luò)的通信量。

使體現(xiàn)企業(yè)規(guī)則的運算程序放入數(shù)據(jù)庫服務(wù)器中,以便 集中控制。

存儲過程可以分為系統(tǒng)存儲過程、擴展存儲過程和用戶自定義的存儲過程

系統(tǒng)存儲過程

我們先來看一下系統(tǒng)存儲過程,系統(tǒng)存儲過程由系統(tǒng)定義,主要存放在 MASTER 數(shù)據(jù)庫中,名稱以 SP 開頭或以 XP 開頭。盡管這些系統(tǒng)存儲過程在 MASTER 數(shù)據(jù)庫中,

  但我們在其他數(shù)據(jù)庫還是可以調(diào)用系統(tǒng)存儲過程。有一些系統(tǒng)存儲過程會在創(chuàng)建新的數(shù)據(jù)庫的時候被自動創(chuàng)建在當前數(shù)據(jù)庫中。

常用系統(tǒng)存儲過程有:

exec sp_databases; – 查看數(shù)據(jù)庫

exec sp_tables;        – 查看表

exec sp_columns student;– 查看列

exec sp_helpIndex student;– 查看索引

exec sp_helpConstraint student;– 約束

exec sp_helptext sp_stored_procedures – 查看存儲過程創(chuàng)建定義的語句

exec sp_stored_procedures;

exec sp_rename student, stuInfo;– 更改表名

exec sp_renamedb myTempDB, myDB;– 更改數(shù)據(jù)庫名稱

exec sp_defaultdb master , myDB – 更改登錄名的默認數(shù)據(jù)庫

exec sp_helpdb;– 數(shù)據(jù)庫幫助,查詢數(shù)據(jù)庫信息

exec sp_helpdb master;

exec sp_attach_db – 附加數(shù)據(jù)庫

exec sp_detach_db – 分離數(shù)據(jù)庫

存儲過程語法:

在創(chuàng)建一個存儲過程前,先來說一下存儲過程的命名,看到好幾篇講存儲過程的文章都喜歡在創(chuàng)建存儲過程的時候加一個前綴,養(yǎng)成在存儲過程名前加前綴的習慣很重要,雖然這只是一件很小的事情,但是往往小細節(jié)決定大成敗。看到有的人喜歡這樣加前綴,例如 proc_名字。也看到這加樣前綴 usp_名字。前一種 proc 是 procedure 的簡寫,后一種 sup 意思是 user procedure。我比較喜歡第一種,那么下面所有的存儲過程名都以第一種來寫。至于名字的寫法采用駱駝命名法。

創(chuàng)建存儲過程的語法如下:

CREATE PROC[EDURE]  存儲過程名  
@參數(shù) 1  [數(shù)據(jù)類型]=[默認值] [OUTPUT] 
@參數(shù) 2  [數(shù)據(jù)類型]=[默認值] [OUTPUT]
AS 
SQL 語句
EXEC  過程名 [參數(shù)]

使用存儲過程實例:1. 不帶參數(shù)

create procedure proc_select_officeinfo--(存儲過程名)as select Id,Name from Office_Info--(sql 語句)
exec proc_select_officeinfo--(調(diào)用存儲過程)

2. 帶輸入?yún)?shù)

create procedure procedure_proc_GetoffinfoById ---- Name dbo.Office_Info Id=@Id----(存儲過程名稱之后, 空格加上參數(shù), 多個參數(shù)中間以逗號分隔)
注: 參數(shù)賦值是, 第一個參數(shù)可以不寫參數(shù)名稱, 后面?zhèn)魅雲(yún)?shù), 需要明確傳入的是哪個參數(shù)名稱 

3. 帶輸入輸出參數(shù)

create procedure proc_office_info–(存儲過程名)
@Id int,@Name varchar(20) output–(參數(shù)名 參數(shù)類型) 傳出參數(shù)要加上 output
as
begin
select @Name=Name from dbo.Office_Info where Id=@Id –(sql 語句)
end

declare @houseName varchar(20) – 聲明一個變量, 獲取存儲過程傳出來的值
exec proc_office_info–(存儲過程名)
4,@houseName output–(傳說參數(shù)要加 output 這邊如果用 @變量 = OUTPUT 會報錯,所以換一種寫法)

select @houseName–(顯示值)

4. 帶返回值的

create procedure proc_office_info--(存儲過程名)@Id int--(參數(shù)名   參數(shù)類型)as beginif(select Name from dbo.Office_Info where Id=@Id)=null --(sql 語句)
beginreturn -1endelsebeginreturn 1end
declare @house varchar(20) -- 聲明一個變量, 獲取存儲過程傳出來的值
exec @house=proc_office_info 2 --(調(diào)用存儲過程, 用變量接收返回值)-- 注:帶返回值的存儲過程只能為 int 類型的返回值
print @house

關(guān)于“數(shù)據(jù)庫中使用存儲過程的實例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向 AI 問一下細節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-16發(fā)表,共計2388字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 达日县| 浦北县| 会昌县| 凤城市| 南充市| 萨嘎县| 清新县| 南召县| 砀山县| 芒康县| 华坪县| 桂平市| 依安县| 揭西县| 汽车| 宜宾市| 朝阳市| 桂平市| 孟连| 海宁市| 普宁市| 勐海县| 潞城市| 余干县| 新密市| 盐源县| 洛川县| 澄江县| 盐池县| 工布江达县| 湖南省| 上林县| 盘山县| 客服| 龙江县| 石渠县| 泗水县| 永登县| 鹤山市| 高清| 确山县|