sql server 存儲過程和觸發(fā)器
來源:易賢網(wǎng) 閱讀:909 次 日期:2014-12-04 15:21:17
溫馨提示:易賢網(wǎng)小編為您整理了“sql server 存儲過程和觸發(fā)器”,方便廣大網(wǎng)友查閱!

一.存儲過程

1.存儲過程的分類

存儲過程是一種數(shù)據(jù)庫對象,存儲在數(shù)據(jù)庫內,可由應用程序通過一個調用執(zhí)行,而且

允許用戶聲明變量、有條件執(zhí)行,具有很強的編程功能

存儲過程可以分為兩類:系統(tǒng)存儲過程、用戶存儲過程和擴展性存儲過程

1).系統(tǒng)存儲過程

系統(tǒng)存儲過程是由SQL Server系統(tǒng)提供的存儲過程,可以作為命令執(zhí)行各種操作。

系統(tǒng)存儲過程主要用來從系統(tǒng)表中獲取信息,為系統(tǒng)管理員管理SQL Server提供幫助,

為用戶查看數(shù)據(jù)庫對象提供方便。

系統(tǒng)存儲過程定義在系統(tǒng)數(shù)據(jù)庫master中,其前綴是sp_。在調用時不必在存儲過程前

加上數(shù)據(jù)庫名

2).用戶存儲過程

用戶存儲過程是指用戶根據(jù)自身需要,為完成某一特定功能,在用戶數(shù)據(jù)庫中創(chuàng)建的存

儲過程。

3).擴展存儲過程

擴展存儲過程以在SQL Server環(huán)境外執(zhí)行的動態(tài)鏈接庫(DLL,Dynamic-LinkLibrar-ies)

來實現(xiàn)。擴展存儲過程通過前綴“xp_”來標識,它們以與存儲過程相似的方式來執(zhí)行。

二.觸發(fā)器

觸發(fā)器是當特定事件出現(xiàn)的時候,自動執(zhí)行或者激活的,與連接到數(shù)據(jù)庫中的用戶或者應用程序無關.。一個表最多有三種不同類型的觸發(fā)器,當UPDATE發(fā)生時使用一個觸發(fā)器;DELETE發(fā)生時使用一個觸發(fā)器;INSERT發(fā)生時使用一個觸發(fā)器

1.與存儲過程的區(qū)別

觸發(fā)器與存儲過程主要的區(qū)別在于觸發(fā)器的運行方式。存儲過程必須由用戶、應用程序或者觸發(fā)器來顯示式地調用并執(zhí)行,而觸發(fā)器是當特定事件出現(xiàn)的時候,自動執(zhí)行或者激活的,與連接到數(shù)據(jù)庫中的用戶或者應用程序無關

注意: 盡管觸發(fā)器的功能強大,但是它們也可能對服務器的性能很有害。因此,要注意不要在觸發(fā)器中放置太多的功能,因為它將降低響應速度,使用戶等待的時間增加

2.觸發(fā)器的分類

1). DDL 觸發(fā)器

DDL觸發(fā)器當服務器或者數(shù)據(jù)庫中發(fā)生數(shù)據(jù)定義語言(DDL)事件時將被調用

2). DML 觸發(fā)器

DML觸發(fā)器是當數(shù)據(jù)庫服務器中發(fā)生數(shù)據(jù)操作語言(DML)事件時要執(zhí)行的操作

3.兩種特殊的表:DELETED表和INSERTED表

SQL Server 2008為每個觸發(fā)器語句都創(chuàng)建了兩種特殊的表:DELETED表和INSERTED表。

這是兩個邏輯表,由系統(tǒng)來自創(chuàng)建和維護,用戶不能對他們進行修改。他們存放在內存而不

是數(shù)據(jù)庫中。這兩個表的結構總是與被該觸發(fā)器作用的表的結構相同。觸發(fā)器執(zhí)行完成后,

與該觸發(fā)器相關的這兩個表也會被刪除

DELETE表存放由執(zhí)行DELETE或者UPDATE語句而要從表中刪除的所有行。在執(zhí)行DELE

TE或者UPDATE操作時,被刪除的行從觸發(fā)觸發(fā)器的表中被移動到DELETE表,這兩個表不

會有共同的行。

INSERT 表存放由執(zhí)行INSERET或者UPDATE語句而要向表中插入的所有行。在執(zhí)行INS

ERT或者UPDATE事務中,新的行同時添加到觸發(fā)觸發(fā)器的表和INSERT表中,INSERT表的內

容是觸發(fā)觸發(fā)器的表中新行的副本。

注意: 一個UPDATE事務可以看作先執(zhí)行一個DELETE 操作,再執(zhí)行一個INSERT操作,舊的行首先被移動到DELETE 表,然后新行同時插入觸發(fā)觸發(fā)器的表和INSERT表。

更多信息請查看IT技術專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機網(wǎng)站地址:sql server 存儲過程和觸發(fā)器

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)