




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
孚驗報0課程名稱 數(shù)據(jù)庫原理 實驗序號 5 實驗項目 觸發(fā)器 實驗地點(diǎn) 實驗學(xué)時 實驗類型驗證性指導(dǎo)教師 實驗員 專業(yè)—班級 學(xué)號—姓名 年月日成績:A教師該學(xué)生在實驗中能發(fā)現(xiàn)問題,在教師的啟發(fā)下能解決問題。實驗步驟和目標(biāo)明確,實驗內(nèi)容豐富,實驗結(jié)論有較好的見解和體會,把所學(xué)知識在實驗中進(jìn)行了檢驗。評語一、實驗?zāi)康募耙?、 掌握觸發(fā)器的基本理論知識;2、 初步掌握觸發(fā)器的使用,包括創(chuàng)建、修改、刪除觸發(fā)器。二、實驗原理與內(nèi)容1、 觸發(fā)器的概念觸發(fā)器是一種在使用UPDATE、INSERT或DELETE命令對指定表中的數(shù)據(jù)進(jìn)行修改時,由數(shù)據(jù)庫管理系統(tǒng)自動執(zhí)行的內(nèi)嵌程序,用來保證數(shù)據(jù)的一致性和完整性。觸發(fā)器與表緊密相連,可以看作是表定義的一部分。觸發(fā)器可以建立在一個用戶定義的表或視圖上,但不能建立在臨時表或系統(tǒng)表上。觸發(fā)器基于一個表創(chuàng)建,但可以操作多個表。觸發(fā)器作為一個獨(dú)立的單元被執(zhí)行,被看作一個事務(wù)。如果在執(zhí)行觸發(fā)器的過程中發(fā)生了錯誤,則整個事務(wù)將會自動回滾。觸發(fā)器是一種特殊的存儲過程,但它與存儲過程不同,存儲過程的存在獨(dú)立于表,而觸發(fā)器和表緊密結(jié)合;存儲過程可以通過存儲過程名稱而被直接調(diào)用,觸發(fā)器則是通過事件進(jìn)行觸發(fā)而自動被執(zhí)行的。2、 觸發(fā)器的優(yōu)點(diǎn)觸發(fā)器是自動執(zhí)行的。觸發(fā)器可以通過數(shù)據(jù)庫中的相關(guān)表進(jìn)行層疊更改,實現(xiàn)多個表之間數(shù)據(jù)的一致性和完整性。觸發(fā)器可以強(qiáng)制比用check約束定義的約束更為復(fù)雜的約束。觸發(fā)器可以引用其他表中的列。⑷一個表中的多個同類觸發(fā)器(INSERT、UPDATE、DELETE)運(yùn)行采取多個不同的對策,以相應(yīng)同一個修改語句。(5)觸發(fā)器可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策3、 觸發(fā)器的分類AFTER觸發(fā)器:又稱后觸發(fā)器。這種觸發(fā)器在數(shù)據(jù)變動完成后才被觸發(fā)??梢詫ψ儎拥臄?shù)據(jù)進(jìn)行檢查,如果發(fā)現(xiàn)錯誤,將拒絕接受或回滾變動的數(shù)據(jù)。只能在表上定義。在同一個數(shù)據(jù)表中可以創(chuàng)建多個after觸發(fā)器。默認(rèn)為after觸發(fā)器。for同after。INSTEADOF觸發(fā)器:前觸發(fā)器。其在數(shù)據(jù)變動前被觸發(fā),并取代變動數(shù)據(jù)的操作(update、insert、delete),而去執(zhí)行觸發(fā)器定義的操作。可在表或視圖上定義,每個update、insert、delete語句最多可定義一個insteadof觸發(fā)器。4、 觸發(fā)器的組成事件:事件是指對數(shù)據(jù)庫的插入、刪除、修改等操作。觸發(fā)器在這些事件發(fā)生時將開始工作。條件:觸發(fā)器將測試條件是否成立。如果條件成立,就執(zhí)行相應(yīng)的動作;否則什么也不做。動作:如果條件滿足,則執(zhí)行這些動作。5、 Inserted表和deleted表Deleted表用于存儲delete和update語句所影響的行的備份。在執(zhí)行delete或update語句時,行從表中刪除,并轉(zhuǎn)移到deleted表中。Deleted表和基表通常沒有相同的行。Inserted表用于存儲insert和update語句所影響的行的備份。在一個插入或更新事務(wù)處理中,新建行被同時添加到inserted表和基表中。Inserted表中的行是基表中新行的備份。6、 在對具有觸發(fā)器的表(觸發(fā)器表)進(jìn)行操作時,其操作過程如下:⑴執(zhí)行insert操作:插入到觸發(fā)器表中的新行被插入到inserted表中。⑵執(zhí)行delete操作:從觸發(fā)器表中刪除的行被插入到deleted表中。執(zhí)行update操作:先從觸發(fā)器表中刪除舊行,然后再插入新行。其中被刪除的舊行被插入到deleted表中,插入的新行被插入到inserted表中。7、 創(chuàng)建觸發(fā)器CREATETRIGGER<trigger_name>ON<table|view>[WITHENCRYPTION]{{{FOR|AFTER|INSTEADOF}{[DELETE][,][INSERT][,][UPDATE]}ASsql_statement[...n]}}Trigger_name:觸發(fā)器的名稱。Table|view:是在其上執(zhí)行觸發(fā)器的表或視圖。Withencryption:加密syscomments表中包含createtrigger語句文本的條目。After:指定觸發(fā)器只有在觸發(fā)sql語句中指定的所有操作都已成功執(zhí)行后才激發(fā)。如果僅指定for,貝U是默認(rèn)設(shè)置。不能在視圖上定義after觸發(fā)器。Insteadof:指定執(zhí)行觸發(fā)器而不是執(zhí)行觸發(fā)sql語句,從而替代觸發(fā)語句的操作。在表或視圖上,每個insert、update、delete語句最多可以定義一個insteadof觸發(fā)器。Delete、update、insert:是指定在表或視圖上執(zhí)行哪些數(shù)據(jù)修改語句時將激活觸發(fā)器的關(guān)鍵字。As:是觸發(fā)器要執(zhí)行的操作。Sql_statement:是觸發(fā)器的條件和操作。8、 修改觸發(fā)器alterTRIGGER<trigger_name>ON<table|view>[WITHENCRYPTION]{{{FOR|AFTER|INSTEADOF}{[INSERT][,][UPDATE][,][DELETE]}ASsqljstatement[?.?n]
}}9、 刪除觸發(fā)器Droptriggertrigger_name[, ]10、 嵌套觸發(fā)器■如果一個觸發(fā)器在執(zhí)行操作時引發(fā)了另一個觸發(fā)器,而這個觸發(fā)器又接著引發(fā)下一個觸發(fā)器時,這些觸發(fā)器就是嵌套觸發(fā)器?!鲇|發(fā)器可嵌套至32層。三、實驗軟硬件環(huán)境裝有MicrosoftSQLServer2008ManagementStudio的電腦□ feqiei-vhtreSr.air.e="李陰*運(yùn)行結(jié)果如右圖,我們可以看到,刪除student□ feqiei-vhtreSr.air.e="李陰*2、 修改觸發(fā)器createtriggert1onstudentInsteadofdeleteasdeletefromreportswheresno=(selectsnofromdeleted)3、 當(dāng)在student表中插入一個學(xué)生信息時,假定該同學(xué)會選修所有課程,同時在reports表中插入該
同學(xué)的選修信息。其命令為CREATETRIGGERT2ONstudentAFTERINSERTASBEGINdeclare@xhvarchar(10)select@xh=snofrominserted--讀取插入學(xué)生的學(xué)號insertintoreports(sno,cno) --插入選課信息select@xh,cnofromcourseEND執(zhí)行上述命令后,執(zhí)行插入命令bno1Fsoi]bno1Fsoi]王建郢舅21□QI2"s'S"李明立IS□013£09女他DB24SD422DOS5S05IE003GSOG2CDQ37SG9d遛Z2002執(zhí)行select*fromstudent,運(yùn)行結(jié)果如下:如Cm5CW7516503C&lNULL75D9CMNULL8SOSCB3NULL9SMGWNULL10309CDS
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020-2025年中國阿利沙坦酯行業(yè)市場調(diào)研分析及投資前景預(yù)測報告
- 2024年甲基叔丁基醚項目評估報告
- 2025-2030年化纖紡織行業(yè)市場調(diào)研及前景趨勢預(yù)測報告
- 2025年中國減水劑行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國自助火鍋未來趨勢預(yù)測分析及投資規(guī)劃研究建議報告
- 石墨烯技術(shù)助力辦公環(huán)境升級
- 2025年發(fā)泡膠板項目可行性研究報告
- 2025年淡水魚養(yǎng)殖市場調(diào)查報告
- 科技企業(yè)如何利用全球化資源實現(xiàn)快速發(fā)展
- 科技企業(yè)中的商務(wù)禮儀與領(lǐng)導(dǎo)形象塑造
- 新人教版高中數(shù)學(xué)選擇性必修第一冊全套精品課件
- 新公務(wù)員法培訓(xùn)課件
- 領(lǐng)導(dǎo)干部的國學(xué)修養(yǎng)講義
- 05-第三章-環(huán)境污染物的生物轉(zhuǎn)運(yùn)和生物轉(zhuǎn)化-生物轉(zhuǎn)化幻燈片
- 公司精益改善項目推進(jìn)管理制度及激勵方案
- 工科高等數(shù)學(xué)(下)知到章節(jié)答案智慧樹2023年上海海洋大學(xué)
- oppor11t刷全網(wǎng)通改全教程
- 兒童羽毛球教程
- 福建某機(jī)場二次雷達(dá)站基建工程施工組織設(shè)計
- 內(nèi)部控制-倉儲與存貨循環(huán)調(diào)查問卷
- 流程成熟度模型(PEMM)
評論
0/150
提交評論