第9章使用觸發(fā)器和事務(wù)_第1頁
第9章使用觸發(fā)器和事務(wù)_第2頁
第9章使用觸發(fā)器和事務(wù)_第3頁
第9章使用觸發(fā)器和事務(wù)_第4頁
第9章使用觸發(fā)器和事務(wù)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

9.1創(chuàng)建觸發(fā)器9.1.1觸發(fā)器在SQLServer中,觸發(fā)器是一種通過事件進(jìn)行觸發(fā)而被執(zhí)行的專用類型的存儲過程.

觸發(fā)器是一個功能強(qiáng)大的工具,它與表格緊密相連,在表中數(shù)據(jù)發(fā)生變化時自動強(qiáng)制執(zhí)行。9.1.2觸發(fā)器的作用觸發(fā)器的主要作用是實現(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)一致性。除此之外,觸發(fā)器還有其它許多不同的功能。執(zhí)行更加復(fù)雜的約束操作。級聯(lián)更改數(shù)據(jù)庫中相關(guān)的數(shù)據(jù)表。返回自定義的錯誤信息。比較數(shù)據(jù)庫修改前后數(shù)據(jù)的狀態(tài)。維護(hù)規(guī)范化數(shù)據(jù)。9.1.3觸發(fā)器的分類

在SQLServer2005中,觸發(fā)器可以分為DML觸發(fā)器和DDL觸發(fā)器兩種類型。DDL觸發(fā)器是當(dāng)數(shù)據(jù)庫服務(wù)器中發(fā)生數(shù)據(jù)定義語言(DDL)事件時執(zhí)行的存儲過程。這些事件主要對應(yīng)于T-SQL中的CREATE、ALTER和DROP語句,以及執(zhí)行類似DDL操作的某些系統(tǒng)存儲過程。DML觸發(fā)器是當(dāng)數(shù)據(jù)庫服務(wù)器中發(fā)生數(shù)據(jù)操作語言(DML)事件時執(zhí)行的存儲過程。DML事件包括在指定表或視圖中修改數(shù)據(jù)的INSERT語句、UPDATE語句或DELETE語句。9.1.3觸發(fā)器的分類

DML觸發(fā)器又分為AFTER觸發(fā)器和INSTEADOF觸發(fā)器兩種類型。AFTER觸發(fā)器在數(shù)據(jù)變動(INSERT、UPDATE和DELETE操作)完成以后才被觸發(fā)。INSTEADOF觸發(fā)器在數(shù)據(jù)變動以前被觸發(fā),并取代變動數(shù)據(jù)的操作,而去執(zhí)行觸發(fā)器定義的操作。9.1.4使用T-SQL語句創(chuàng)建觸發(fā)器使用T-SQL語句CREATETRIGGER創(chuàng)建觸發(fā)器的基本語法格式如下:CREATETRIGGER觸發(fā)器名ON{表名|視圖名}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}ASIFUPDATE(列名)[{AND|OR}UPDATE(列名)…]SQL語句9.1.4使用T-SQL語句創(chuàng)建觸發(fā)器其中各參數(shù)含義如下:WITHENCRYPTION:加密觸發(fā)器的文本。AFTER:指定在對數(shù)據(jù)表的相關(guān)操作之后,觸發(fā)器被觸發(fā)。INSTEADOF:指定執(zhí)行觸發(fā)器而不是執(zhí)行觸發(fā)語句,從而替代觸發(fā)語句的操作。{[INSERT],[UPDATE],[DELETE]}:指定在表或視圖上執(zhí)行哪些數(shù)據(jù)修改語句時激活觸發(fā)器的關(guān)鍵字,必須至少指定一個選項。IFUPDATE:指定對表內(nèi)某列做增加或修改內(nèi)容時,觸發(fā)器才起作用,它可以指定兩個以上列,列名前可以不加表名。SQL語句:指定觸發(fā)器執(zhí)行的條件和動作。9.1.5使用SSMS創(chuàng)建觸發(fā)器使用SQLServerManagementStudio創(chuàng)建觸發(fā)器的基本步驟演示。9.2管理與維護(hù)觸發(fā)器9.2.1查看觸發(fā)器信息觸發(fā)器被創(chuàng)建以后,它的名稱存放在系統(tǒng)表sysobjects中,它的創(chuàng)建源代碼存放在syscomments系統(tǒng)表中。(1)查看表中的觸發(fā)器信息可以使用系統(tǒng)存儲過程sp_helptrigger查看指定表中所定義的觸發(fā)器及它們的類型。(2)查看觸發(fā)器定義可以使用系統(tǒng)存儲過程sp_helptext查看指定觸發(fā)器的定義文本。9.2.1查看觸發(fā)器信息(3)查看觸發(fā)器的所有者和創(chuàng)建時間可以使用系統(tǒng)存儲過程sp_help查看觸發(fā)器的所有者和創(chuàng)建時間。9.2.2修改觸發(fā)器(1)使用SSMS修改觸發(fā)器定義使用SQLServerManagementStudio修改觸發(fā)器定義的基本步驟演示。(2)使用存儲過程sp_rename重命名觸發(fā)器使用存儲過程sp_rename重命名觸發(fā)器的語法格式為:sp_rename

原名稱,新名稱9.2.2修改觸發(fā)器(3)使用T-SQL語句修改觸發(fā)器正文使用T-SQL語句ALTERTRIGGER可以修改觸發(fā)器,具體語法形式如下:ALTERTRIGGER觸發(fā)器名ON{表名|視圖名}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}ASIFUPDATE(列名)[{AND|OR}UPDATE(列名)…]SQL語句9.2.3刪除觸發(fā)器(1)使用SQL語句的DROPTRIGGER刪除指定的觸發(fā)器,其語法格式為:DROPTRIGGER觸發(fā)器名(2)刪除觸發(fā)器所在的表時,SQLServer將自動刪除與該表相關(guān)的觸發(fā)器。(3)在“對象資源管理器”中右鍵單擊需要刪除的觸發(fā)器名稱,在彈出的菜單中選擇“刪除”命令即可。9.2.4禁止和啟用觸發(fā)器使用T-SQL語句禁止和啟用觸發(fā)器的基本語法如下:ALTERTABLE表名{ENABLE|DISABLE}TRIGGER{ALL|觸發(fā)器名[,…n]}其中:ENABLE:啟用觸發(fā)器。DISABLE:禁止觸發(fā)器。ALL:指定啟用或禁止表中所有的觸發(fā)器。9.3了解事務(wù)9.3.1事務(wù)事務(wù)是由一系列的數(shù)據(jù)查詢操作或更新操作構(gòu)成,可以看作單個處理單元。如果某一事務(wù)執(zhí)行,則在該事務(wù)中的所有操作均會執(zhí)行,記錄在數(shù)據(jù)庫中,成為持久的組成部分。如果遇到問題,則必須全部取消或回滾,所有處理均被清除。9.3.2事務(wù)的特征原子性:事務(wù)必須是原子工作單元,對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全部不執(zhí)行。一致性:事務(wù)結(jié)束時,必須使所有數(shù)據(jù)處于一致性狀態(tài)。隔離性:為了提高事務(wù)的吞吐率,大多數(shù)DBMS允許同時執(zhí)行多個事務(wù),就像分時操作系統(tǒng)為了充分利用系統(tǒng)資源,同時執(zhí)行多個進(jìn)程一樣。持久性:事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的,該修改即使出現(xiàn)系統(tǒng)故障也將一直保持。9.3.3事務(wù)模式(1)自動提交事務(wù):每條單獨的語句都是一個事務(wù)。(2)顯式事務(wù):每個事務(wù)均以BEGINTRANSACTION語句顯式開始,以COMMIT或ROLLBACK語句顯式結(jié)束。(3)隱式事務(wù):在前一個事務(wù)完成時新事務(wù)隱式啟動,但每個事務(wù)仍以COMMIT或ROLLBACK語句顯式完成。(4)批處理級事務(wù):只能應(yīng)用于多個活動結(jié)果集(MARS),在MARS會話中啟動的T-SQL顯式或隱式事務(wù)變?yōu)榕幚砑壥聞?wù)。當(dāng)批處理完成時沒有提交或回滾的批處理級事務(wù)自動由SQLServer進(jìn)行回滾。9.3.4自動事務(wù)自動事務(wù)模式為系統(tǒng)默認(rèn)的事務(wù)管理模式。在自動事務(wù)模式下,每個T-SQL語句在成功執(zhí)行完成后,都被自動提交。如果遇到錯誤,則自動回滾該語句。9.3.5顯式事務(wù)顯式事務(wù)由用戶在其中定義事務(wù)的啟動和結(jié)束。(1)建立事務(wù)建立事務(wù)的基本語法格式如下:BEGINTRANSACTION[事務(wù)名]該語句標(biāo)記一個顯式本地事務(wù)的起始點。9.3.5顯式事務(wù)(2)提交事務(wù)提交事務(wù)的基本語法格式如下:COMMITTRANSACTION[事務(wù)名]該語句標(biāo)志一個成功的顯式事務(wù)(或隱式事務(wù))的完成。(3)回滾事務(wù)回滾事務(wù)的基本語法格式如下:ROLLBACKTRANSACTION

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論