當前位置:首頁 » 存儲配置 » 觸發器和存儲過程的區別

觸發器和存儲過程的區別

發布時間: 2024-10-31 02:08:30

存儲過程與觸發器的區別和聯系

我的理解:主要是使用場合不同,還有就是觸發器中不能使用commit(這個應該是約定而不是規定)
存儲過程相當於打包好的sql語法,可以包含復雜的sql操作,在程序調用時只要執行該存儲過程,一句話就可以完成復雜的資料庫操作.

Ⅱ SQL中觸發器、存儲過程

1、觸發器:當向表unit插入的數據後,且objectid>10000時,向表test_tab插入數據
create
trigger
trig1
after
insert
on
unit
for
each
row
when
(objectid>10000)
begin
insert
into
test_tab
values(new.objectid,new.name);
end;存儲過程:向表test插入調用存儲時的參數@id,@namecreate
procere
pro_name
@id,@nameasbegininsert
into
test
values(@id,@name);end;2、兩個區別,通過語法可以看出來,觸發器是在執行了一定的操作後,根據觸發條件,系統自動執行某一操作;而存儲過程則是根據你設定的特定操作,來進行相應的操作而已。3、至於什麼時候用觸發器,什麼時候用存儲過程,這個就要根據你的使用情況了。比如說,在對某張表進行了特定操作後,我們讓系統自動去執行一些操作,這個時候就可以使用觸發器。而存儲過程呢,如果我們在某一個事務中要進行的sql操作特別多,那麼我們就可以把這些sql語句用存儲過程來匯總,達到執行一遍存儲過程就可以執行多條sql命令的目的。另外,你聽說的現在不用觸發器,這點明顯是被誤導了,觸發器和存儲過程是各有優點的。舉個例子,比如說電信的通話記錄,你可以想像每天的數據量有多大,那麼為了保證系統的性能,我們就可以設定觸發器來對表的容量進行限定,比如達到了1000萬條數據,我們可以觸發一個清表的操作,那麼這張表就可以保證數據量始終在1000W以下(這個例子不是很合適,但是可以說明點問題)。之所以有人說不用觸發器,這點也是從資料庫性能來說的,說實話,使用觸發器時,如果設計得不合適,那麼對整個系統的性能會造成很大的影響的,所以在設計資料庫時,一定要慎重。整個產品的性能並不是說代碼優化就行了,資料庫的架構設計也應該考慮在其中。

Ⅲ 資料庫存儲過程、函數、觸發器的區別是什麼

三者差別:

1、存儲過程實現的功能要復雜一點,而函數實現的功能針對性比較強。;

2、存儲過程一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用;

3、觸發器是特殊的存儲過程,存儲過程需要程序調用,而觸發器會自動執行。

分別含義:

1、存儲過程的特點

①存儲過程只在創建時進行編譯,以後執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。

② 當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來。

③可以在過程中調用另一個存儲過程。可以在存儲過程中調用函數。這可以簡化一系列復雜語句。

④ 安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

⑤參數有三種(IN、OUT、IN OUT),可返回多個參數值。

⑥在ORACLE中,若干個有聯系的過程可以組合在一起構成程序包。

⑦存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。

2、函數的特點

①函數只有一種參數(IN),只有一條RETURN語句,只能返回單一的值。

②可在SQL語句(DML或SELECT)中調用函數。由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。

3、觸發器的特點

觸發器是特殊的存儲過程,存儲過程需要程序調用,而觸發器會自動執行。

熱點內容
linux進程間同步 發布:2024-11-23 10:14:25 瀏覽:184
android朋友圈圖片 發布:2024-11-23 10:02:08 瀏覽:158
eclipsejar源碼亂碼 發布:2024-11-23 10:01:33 瀏覽:144
oracle導入資料庫數據 發布:2024-11-23 09:57:09 瀏覽:795
高訪問網址 發布:2024-11-23 09:53:02 瀏覽:519
android內置apk 發布:2024-11-23 09:46:18 瀏覽:319
郵箱伺服器搭建windows 發布:2024-11-23 09:44:46 瀏覽:559
安卓如何強制關閉 發布:2024-11-23 09:43:05 瀏覽:447
linux怎麼安裝samba伺服器 發布:2024-11-23 09:42:26 瀏覽:427
php開源建站 發布:2024-11-23 09:33:57 瀏覽:44