版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
9.1創(chuàng)建觸發(fā)器9.1.1觸發(fā)器在SQLServer中,觸發(fā)器是一種通過(guò)事件進(jìn)行觸發(fā)而被執(zhí)行的專用類型的存儲(chǔ)過(guò)程.
觸發(fā)器是一個(gè)功能強(qiáng)大的工具,它與表格緊密相連,在表中數(shù)據(jù)發(fā)生變化時(shí)自動(dòng)強(qiáng)制執(zhí)行。9.1.2觸發(fā)器的作用觸發(fā)器的主要作用是實(shí)現(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)一致性。除此之外,觸發(fā)器還有其它許多不同的功能。執(zhí)行更加復(fù)雜的約束操作。級(jí)聯(lián)更改數(shù)據(jù)庫(kù)中相關(guān)的數(shù)據(jù)表。返回自定義的錯(cuò)誤信息。比較數(shù)據(jù)庫(kù)修改前后數(shù)據(jù)的狀態(tài)。維護(hù)規(guī)范化數(shù)據(jù)。9.1.3觸發(fā)器的分類
在SQLServer2005中,觸發(fā)器可以分為DML觸發(fā)器和DDL觸發(fā)器兩種類型。DDL觸發(fā)器是當(dāng)數(shù)據(jù)庫(kù)服務(wù)器中發(fā)生數(shù)據(jù)定義語(yǔ)言(DDL)事件時(shí)執(zhí)行的存儲(chǔ)過(guò)程。這些事件主要對(duì)應(yīng)于T-SQL中的CREATE、ALTER和DROP語(yǔ)句,以及執(zhí)行類似DDL操作的某些系統(tǒng)存儲(chǔ)過(guò)程。DML觸發(fā)器是當(dāng)數(shù)據(jù)庫(kù)服務(wù)器中發(fā)生數(shù)據(jù)操作語(yǔ)言(DML)事件時(shí)執(zhí)行的存儲(chǔ)過(guò)程。DML事件包括在指定表或視圖中修改數(shù)據(jù)的INSERT語(yǔ)句、UPDATE語(yǔ)句或DELETE語(yǔ)句。9.1.3觸發(fā)器的分類
DML觸發(fā)器又分為AFTER觸發(fā)器和INSTEADOF觸發(fā)器兩種類型。AFTER觸發(fā)器在數(shù)據(jù)變動(dòng)(INSERT、UPDATE和DELETE操作)完成以后才被觸發(fā)。INSTEADOF觸發(fā)器在數(shù)據(jù)變動(dòng)以前被觸發(fā),并取代變動(dòng)數(shù)據(jù)的操作,而去執(zhí)行觸發(fā)器定義的操作。9.1.4使用T-SQL語(yǔ)句創(chuàng)建觸發(fā)器使用T-SQL語(yǔ)句CREATETRIGGER創(chuàng)建觸發(fā)器的基本語(yǔ)法格式如下:CREATETRIGGER觸發(fā)器名ON{表名|視圖名}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}ASIFUPDATE(列名)[{AND|OR}UPDATE(列名)…]SQL語(yǔ)句9.1.4使用T-SQL語(yǔ)句創(chuàng)建觸發(fā)器其中各參數(shù)含義如下:WITHENCRYPTION:加密觸發(fā)器的文本。AFTER:指定在對(duì)數(shù)據(jù)表的相關(guān)操作之后,觸發(fā)器被觸發(fā)。INSTEADOF:指定執(zhí)行觸發(fā)器而不是執(zhí)行觸發(fā)語(yǔ)句,從而替代觸發(fā)語(yǔ)句的操作。{[INSERT],[UPDATE],[DELETE]}:指定在表或視圖上執(zhí)行哪些數(shù)據(jù)修改語(yǔ)句時(shí)激活觸發(fā)器的關(guān)鍵字,必須至少指定一個(gè)選項(xiàng)。IFUPDATE:指定對(duì)表內(nèi)某列做增加或修改內(nèi)容時(shí),觸發(fā)器才起作用,它可以指定兩個(gè)以上列,列名前可以不加表名。SQL語(yǔ)句:指定觸發(fā)器執(zhí)行的條件和動(dòng)作。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)存儲(chǔ)過(guò)程sp_helptrigger查看指定表中所定義的觸發(fā)器及它們的類型。(2)查看觸發(fā)器定義可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_helptext查看指定觸發(fā)器的定義文本。9.2.1查看觸發(fā)器信息(3)查看觸發(fā)器的所有者和創(chuàng)建時(shí)間可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_help查看觸發(fā)器的所有者和創(chuàng)建時(shí)間。9.2.2修改觸發(fā)器(1)使用SSMS修改觸發(fā)器定義使用SQLServerManagementStudio修改觸發(fā)器定義的基本步驟演示。(2)使用存儲(chǔ)過(guò)程sp_rename重命名觸發(fā)器使用存儲(chǔ)過(guò)程sp_rename重命名觸發(fā)器的語(yǔ)法格式為:sp_rename
原名稱,新名稱9.2.2修改觸發(fā)器(3)使用T-SQL語(yǔ)句修改觸發(fā)器正文使用T-SQL語(yǔ)句ALTERTRIGGER可以修改觸發(fā)器,具體語(yǔ)法形式如下:ALTERTRIGGER觸發(fā)器名ON{表名|視圖名}[WITHENCRYPTION]{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}ASIFUPDATE(列名)[{AND|OR}UPDATE(列名)…]SQL語(yǔ)句9.2.3刪除觸發(fā)器(1)使用SQL語(yǔ)句的DROPTRIGGER刪除指定的觸發(fā)器,其語(yǔ)法格式為:DROPTRIGGER觸發(fā)器名(2)刪除觸發(fā)器所在的表時(shí),SQLServer將自動(dòng)刪除與該表相關(guān)的觸發(fā)器。(3)在“對(duì)象資源管理器”中右鍵單擊需要?jiǎng)h除的觸發(fā)器名稱,在彈出的菜單中選擇“刪除”命令即可。9.2.4禁止和啟用觸發(fā)器使用T-SQL語(yǔ)句禁止和啟用觸發(fā)器的基本語(yǔ)法如下:ALTERTABLE表名{ENABLE|DISABLE}TRIGGER{ALL|觸發(fā)器名[,…n]}其中:ENABLE:?jiǎn)⒂糜|發(fā)器。DISABLE:禁止觸發(fā)器。ALL:指定啟用或禁止表中所有的觸發(fā)器。9.3了解事務(wù)9.3.1事務(wù)事務(wù)是由一系列的數(shù)據(jù)查詢操作或更新操作構(gòu)成,可以看作單個(gè)處理單元。如果某一事務(wù)執(zhí)行,則在該事務(wù)中的所有操作均會(huì)執(zhí)行,記錄在數(shù)據(jù)庫(kù)中,成為持久的組成部分。如果遇到問(wèn)題,則必須全部取消或回滾,所有處理均被清除。9.3.2事務(wù)的特征原子性:事務(wù)必須是原子工作單元,對(duì)于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全部不執(zhí)行。一致性:事務(wù)結(jié)束時(shí),必須使所有數(shù)據(jù)處于一致性狀態(tài)。隔離性:為了提高事務(wù)的吞吐率,大多數(shù)DBMS允許同時(shí)執(zhí)行多個(gè)事務(wù),就像分時(shí)操作系統(tǒng)為了充分利用系統(tǒng)資源,同時(shí)執(zhí)行多個(gè)進(jìn)程一樣。持久性:事務(wù)完成之后,它對(duì)于系統(tǒng)的影響是永久性的,該修改即使出現(xiàn)系統(tǒng)故障也將一直保持。9.3.3事務(wù)模式(1)自動(dòng)提交事務(wù):每條單獨(dú)的語(yǔ)句都是一個(gè)事務(wù)。(2)顯式事務(wù):每個(gè)事務(wù)均以BEGINTRANSACTION語(yǔ)句顯式開始,以COMMIT或ROLLBACK語(yǔ)句顯式結(jié)束。(3)隱式事務(wù):在前一個(gè)事務(wù)完成時(shí)新事務(wù)隱式啟動(dòng),但每個(gè)事務(wù)仍以COMMIT或ROLLBACK語(yǔ)句顯式完成。(4)批處理級(jí)事務(wù):只能應(yīng)用于多個(gè)活動(dòng)結(jié)果集(MARS),在MARS會(huì)話中啟動(dòng)的T-SQL顯式或隱式事務(wù)變?yōu)榕幚砑?jí)事務(wù)。當(dāng)批處理完成時(shí)沒(méi)有提交或回滾的批處理級(jí)事務(wù)自動(dòng)由SQLServer進(jìn)行回滾。9.3.4自動(dòng)事務(wù)自動(dòng)事務(wù)模式為系統(tǒng)默認(rèn)的事務(wù)管理模式。在自動(dòng)事務(wù)模式下,每個(gè)T-SQL語(yǔ)句在成功執(zhí)行完成后,都被自動(dòng)提交。如果遇到錯(cuò)誤,則自動(dòng)回滾該語(yǔ)句。9.3.5顯式事務(wù)顯式事務(wù)由用戶在其中定義事務(wù)的啟動(dòng)和結(jié)束。(1)建立事務(wù)建立事務(wù)的基本語(yǔ)法格式如下:BEGINTRANSACTION[事務(wù)名]該語(yǔ)句標(biāo)記一個(gè)顯式本地事務(wù)的起始點(diǎn)。9.3.5顯式事務(wù)(2)提交事務(wù)提交事務(wù)的基本語(yǔ)法格式如下:COMMITTRANSACTION[事務(wù)名]該語(yǔ)句標(biāo)志一個(gè)成功的顯式事務(wù)(或隱式事務(wù))的完成。(3)回滾事務(wù)回滾事務(wù)的基本語(yǔ)法格式如下:ROLLBACKTRANSACTION
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)第四學(xué)年(教育學(xué))教育行動(dòng)研究試題及答案
- 2025-2026年六年級(jí)歷史(模塊測(cè)試)上學(xué)期期中測(cè)試卷
- 2025年大學(xué)醫(yī)學(xué)影像學(xué)(學(xué)術(shù)研究實(shí)務(wù))試題及答案
- 2025年高職石油與天然氣(油氣技術(shù)推廣)試題及答案
- 2026年中職第二學(xué)年(中西面點(diǎn)工藝)西式糕點(diǎn)制作階段測(cè)試題及答案
- 2025年大學(xué)第三學(xué)年(康復(fù)治療學(xué))康復(fù)工程基礎(chǔ)階段測(cè)試試題及答案
- 2026上半年外語(yǔ)(盧森堡語(yǔ)HSK四級(jí))實(shí)戰(zhàn)技巧
- 深度解析(2026)《GBT 18294.2-2010火災(zāi)技術(shù)鑒定方法 第2部分:薄層色譜法》
- 深度解析(2026)《GBT 18199-2000外照射事故受照人員的醫(yī)學(xué)處理和治療方案》
- 深度解析(2026)《GBT 17980.72-2004農(nóng)藥 田間藥效試驗(yàn)準(zhǔn)則(二) 第72部分殺蟲劑防治旱地地下害蟲》
- 切爾諾貝利核電站事故工程倫理分析
- 初中地理七年級(jí)上冊(cè)第七章第四節(jié)俄羅斯
- 法院起訴收款賬戶確認(rèn)書范本
- 課堂觀察與評(píng)價(jià)的基本方法課件
- 私募基金內(nèi)部人員交易管理制度模版
- 針對(duì)低層次學(xué)生的高考英語(yǔ)復(fù)習(xí)提分有效策略 高三英語(yǔ)復(fù)習(xí)備考講座
- (完整)《走遍德國(guó)》配套練習(xí)答案
- 考研準(zhǔn)考證模板word
- 周練習(xí)15- 牛津譯林版八年級(jí)英語(yǔ)上冊(cè)
- 電力電纜基礎(chǔ)知識(shí)課件
- 代理記賬申請(qǐng)表
評(píng)論
0/150
提交評(píng)論