SQLServer 數(shù)據(jù)庫及應(yīng)用理觸發(fā)器_第1頁
SQLServer 數(shù)據(jù)庫及應(yīng)用理觸發(fā)器_第2頁
SQLServer 數(shù)據(jù)庫及應(yīng)用理觸發(fā)器_第3頁
SQLServer 數(shù)據(jù)庫及應(yīng)用理觸發(fā)器_第4頁
SQLServer 數(shù)據(jù)庫及應(yīng)用理觸發(fā)器_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器深圳職業(yè)技術(shù)學(xué)院深圳職業(yè)技術(shù)學(xué)院 大型數(shù)據(jù)庫課程組大型數(shù)據(jù)庫課程組大型數(shù)據(jù)庫大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器2 2【知識(shí)目標(biāo)】【知識(shí)目標(biāo)】|理解觸發(fā)器的作用。|應(yīng)能熟練創(chuàng)建、修改、刪除觸發(fā)器。|掌握觸發(fā)器的禁用和啟用方法?!炯寄苣繕?biāo)】|能根據(jù)需要?jiǎng)?chuàng)建、修改、刪除觸發(fā)器。|會(huì)根據(jù)需要禁用、啟用觸發(fā)器。大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器3任務(wù)陳述|在學(xué)生選課數(shù)據(jù)庫xk中,每當(dāng)學(xué)生報(bào)名、取消選修

2、課程時(shí),都需要更新課程表中相應(yīng)課程的報(bào)名人數(shù)?,F(xiàn)在需要編寫程序,當(dāng)學(xué)生報(bào)名或取消選修課程時(shí),程序會(huì)自動(dòng)更新課程表的報(bào)名人數(shù)信息。|在學(xué)生選課數(shù)據(jù)庫xk中創(chuàng)建觸發(fā)器,并根據(jù)需要修改、刪除觸發(fā)器 大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器4 4思考:當(dāng)學(xué)生報(bào)名選修sqlserver實(shí)用技術(shù)課程時(shí),willnum應(yīng)自動(dòng)加1,如何處理?大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器5 5|觸發(fā)器觸發(fā)器:一種特殊的存儲(chǔ)過程,該存儲(chǔ)過程在指定的表中數(shù)據(jù)發(fā)生

3、變化時(shí)被自動(dòng)調(diào)用以響應(yīng)insert、update或delete事件。|作用作用:強(qiáng)制執(zhí)行業(yè)務(wù)規(guī)則|觸發(fā)器的兩個(gè)表及作用觸發(fā)器的兩個(gè)表及作用: inserted、deleted表 為什么沒有updated表?|觸發(fā)器類型:后觸發(fā)、替代觸發(fā)。大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器6 6|系統(tǒng)為每個(gè)觸發(fā)器都自動(dòng)創(chuàng)建了inserted表和deleted表|inserted表用于存放插入操作時(shí)的行;deleted表用于存放刪除操作時(shí)的行|這兩個(gè)表的結(jié)構(gòu)和被觸發(fā)器作用的表的結(jié)構(gòu)相同|用戶不能對(duì)這兩個(gè)表進(jìn)行修改,但可以讀取大型

4、數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器7 7|創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器:create trigger trigger_nameon tablewith encryptionfor|after| instead of insert update deleteas sql_statement|查看觸發(fā)器信息查看觸發(fā)器信息大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器8創(chuàng)建觸發(fā)器|【問題121】創(chuàng)建后觸發(fā)觸發(fā)器update_student_trigger

5、。實(shí)現(xiàn)每當(dāng)修改student表的數(shù)據(jù)時(shí),在客戶端顯示“已修改student表的數(shù)據(jù)?!钡南?。 創(chuàng)建創(chuàng)建(略) 寫出語句進(jìn)行測(cè)試,是否自動(dòng)觸發(fā)了觸發(fā)器。大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器9 9|【問題】將題中的for update改為instead of或者after,觀察執(zhí)行結(jié)果有何不同。|小結(jié)小結(jié):z使用for/after時(shí),執(zhí)行觸發(fā)sql語句(insert/update/delete):在觸發(fā)sql語句成功執(zhí)行后,再激活并執(zhí)行觸發(fā)器。z使用instead of時(shí):執(zhí)行觸發(fā)器而不執(zhí)行觸發(fā)sql語句。大型

6、數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器10修改觸發(fā)器|當(dāng)修改的數(shù)據(jù)在student表中不存在時(shí),也顯示修改的信息,這是程序的bug。|【問題122】修改觸發(fā)器update_student_trigger。在確實(shí)修改了student表中的數(shù)據(jù)后顯示“已修改student表的數(shù)據(jù)?!?,否則顯示“不存在要修改的數(shù)據(jù)?!?。|使用alter trigger語句修改觸發(fā)器。大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器11創(chuàng)建、修改觸發(fā)器|【問題124】創(chuàng)

7、建替代觸發(fā)器update_department_trigger。修改department表的數(shù)據(jù)時(shí)觸發(fā)了觸發(fā)器,用執(zhí)行觸發(fā)器中的語句替代觸發(fā)的sql語句。|【問題125】創(chuàng)建一個(gè)觸發(fā)器。實(shí)現(xiàn)當(dāng)插入、更新或刪除stucou表的選課數(shù)據(jù)行時(shí),能同時(shí)更新course表中相應(yīng)的報(bào)名人數(shù)。 |【問題126】使用if update(column)。修改update_department_trigger觸發(fā)器,每當(dāng)修改department表departname列的數(shù)據(jù)時(shí),在客戶端顯示“已修改系部名稱?!?大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器

8、創(chuàng)建與管理觸發(fā)器1212|特點(diǎn):只有當(dāng)if update指明的列發(fā)生修改/插入時(shí),才觸發(fā)執(zhí)行觸發(fā)器。if update不響應(yīng)delete操作。|sql server允許為每個(gè)事件(delete、insert、update)創(chuàng)建多個(gè)觸發(fā)器。|【問題127】在一個(gè)表上創(chuàng)建多個(gè)觸發(fā)器。為department表再創(chuàng)建一個(gè)update觸發(fā)器test_trigger,每當(dāng)修改department表的數(shù)據(jù)時(shí),在客戶端顯示“二次觸發(fā)!”。大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器1313|重命名觸發(fā)器sql格式:sp_rename

9、oldname, newname|刪除觸發(fā)器sql格式:drop trigger trigger_namez說明:刪除觸發(fā)器所在的表時(shí),sql server將會(huì)自動(dòng)刪除與該表相關(guān)的觸發(fā)器大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器1414|禁用觸發(fā)器234頁 alter table table_name disable trigger trigger_name|啟用觸發(fā)器233頁 alter table table_name enable trigger trigger_name|顯看數(shù)據(jù)庫的觸發(fā)器:查詢sysobje

10、cts系統(tǒng)表,234頁【問題12.13】大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器15151. 創(chuàng)建一個(gè)觸發(fā)器,要求每當(dāng)用戶向student表插入記錄時(shí),自動(dòng)顯示student表中插入的記錄2. 創(chuàng)建一個(gè)觸發(fā)器,要求每當(dāng)用戶向stucou表插入記錄時(shí),自動(dòng)顯示插入記錄中的課程編號(hào)大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器16161.為class表創(chuàng)建一個(gè)觸發(fā)器,當(dāng)刪除class表中的數(shù)據(jù)時(shí)(班級(jí)撤銷),將student表中相關(guān)學(xué)生的班級(jí)編碼

11、設(shè)置為“待定”。2.設(shè)計(jì)一個(gè)觸發(fā)器,當(dāng)class表的班級(jí)編碼發(fā)生變化時(shí),能自動(dòng)地更新student表中相應(yīng)的記錄級(jí)聯(lián)修改。大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理觸發(fā)器創(chuàng)建與管理觸發(fā)器1717|create trigger要在單個(gè)批處理中執(zhí)行|on table中的表格只能是一個(gè)|在同一條create trigger語句中,可以為多個(gè)事件( insert/delete/update)定義相同的觸發(fā)器操作|可以為每個(gè)事件(insert/delete/update)創(chuàng)建多個(gè)觸發(fā)器大型數(shù)據(jù)庫(大型數(shù)據(jù)庫(sql serversql server) 單元單元12 12 創(chuàng)建與管理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論