《數(shù)據(jù)庫管理與應(yīng)用》課件-33 DML觸發(fā)器(模板不同)_第1頁
《數(shù)據(jù)庫管理與應(yīng)用》課件-33 DML觸發(fā)器(模板不同)_第2頁
《數(shù)據(jù)庫管理與應(yīng)用》課件-33 DML觸發(fā)器(模板不同)_第3頁
《數(shù)據(jù)庫管理與應(yīng)用》課件-33 DML觸發(fā)器(模板不同)_第4頁
《數(shù)據(jù)庫管理與應(yīng)用》課件-33 DML觸發(fā)器(模板不同)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

DML觸發(fā)器——保證數(shù)據(jù)的一致性目錄一問題產(chǎn)生DML觸發(fā)器解決問題應(yīng)用拓展二三四一、問題產(chǎn)生(1)輸入:陳辰《數(shù)據(jù)庫項(xiàng)目開發(fā)》99分。(2)修改:陳辰《C語言》補(bǔ)考成績61分。一、問題產(chǎn)生學(xué)號姓名總學(xué)分98001陳辰2298002李四30………………學(xué)號課程號成績98001kc0015998001kc0028598001kc0037798001kc00999學(xué)生表61課程號課程名學(xué)分kc001C語言3kc009數(shù)據(jù)庫項(xiàng)目開發(fā)9課程表一、問題產(chǎn)生選課表學(xué)生表課程表22

學(xué)號姓名總學(xué)分98001陳辰2298002李四30………………學(xué)號課程號成績98001kc0015998001kc0028598001kc0037798001kc00999成績表學(xué)生表61課程號課程名學(xué)分kc001C語言3kc009數(shù)據(jù)庫項(xiàng)目開發(fā)9課程表39一、問題產(chǎn)生成績表學(xué)生表課程表34

構(gòu)建于數(shù)據(jù)庫上的應(yīng)用?數(shù)據(jù)庫一、問題產(chǎn)生DML觸發(fā)器DML觸發(fā)器作用:保證數(shù)據(jù)的一致性現(xiàn)象1:插入數(shù)據(jù)時數(shù)據(jù)不一致現(xiàn)象2:刪除數(shù)據(jù)時數(shù)據(jù)不一致現(xiàn)象3:更新數(shù)據(jù)時數(shù)據(jù)不一致一、問題產(chǎn)生保存觸發(fā)動作被觸發(fā)createtriggeronfor

as

begin

end二、DML觸發(fā)器觸發(fā)器名事件表觸發(fā)器任務(wù)創(chuàng)建執(zhí)行任務(wù)語法:工作原理:不需調(diào)用,動作觸發(fā)執(zhí)行觸發(fā)器做什么?判斷疑問2:臨時存放何處?疑問3:從哪里撤銷數(shù)據(jù)?三個觸發(fā)動作:insert、update、delete兩張臨時存儲表:inserted、deleted疑問1:觸發(fā)器何時執(zhí)行任務(wù)?二、DML觸發(fā)器用戶:輸入、修改

12003王五2812004賈六28

Inserted表學(xué)生表插入二、DML觸發(fā)器不合法合法

12003王五2812004賈六28

學(xué)號姓名總學(xué)分12001張三2512002李四23?

12003王五2812004賈六28

12003王五2812004賈六28

學(xué)號姓名總學(xué)分12001張三2512002李四23Deleted表刪除學(xué)生表二、DML觸發(fā)器合法不合法?12004賈六28Inserted表Deleted表

12003王五28

12004賈六28

修改

12003王五28學(xué)生表二、DML觸發(fā)器不合法合法

12003王五2812004賈六28

學(xué)號姓名總學(xué)分12001張三2512002李四23?三、解決問題插入成績第一步:用戶輸入成績、修改成績第二步:得到陳辰的新成績第三步:判斷成績是否合格第四步:如果成績不合格

返回第五步:如果成績合格

(5-1)得到課程的學(xué)分

(5-2)更新陳辰的總學(xué)分

輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績?nèi)?、解決問題createtrigger觸發(fā)器名稱on事件表

for觸發(fā)動作asbegin

觸發(fā)器任務(wù)endt4選課Insert,update輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績?nèi)?、解決問題createtriggert4on選課

forinsert,updateasbegin

觸發(fā)器任務(wù)

(業(yè)務(wù)數(shù)據(jù)表:課程表,學(xué)生表)end輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績?nèi)?、解決問題輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績Inserted表

學(xué)號課程號成績98001kc0015998001kc00999選課表

98001kc00999編碼:Declare@cjintset@cj=(Select成績frominserted)三、解決問題輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績編碼:

If成績>60

執(zhí)行任務(wù)else

返回

編碼:

If成績>60

執(zhí)行任務(wù)三、解決問題輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績編碼:declare@xfintset@xf=(select學(xué)分from課程where課程號=(select課程號frominserted))Inserted表

98001kc00999課程表課程號課程名學(xué)分kc001C語言3kc009數(shù)據(jù)庫項(xiàng)目開發(fā)9三、解決問題輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績前期結(jié)果:@xf=課程學(xué)分編碼:

update學(xué)生set總學(xué)分=總學(xué)分+@xfwhere學(xué)號=(select學(xué)號frominserted)學(xué)號姓名總學(xué)分98001陳辰2298002李四30………………學(xué)生表22+@xf

Inserted表

98001kc00999三、解決問題createtriggert4on選修forinsert,updateasbegindeclare@cjintset@cj=(select成績frominserted)if@cj>60begindeclare@xfintset@xf=(select學(xué)分from課程where課程號=(select課程號frominserted))update學(xué)生set總學(xué)分=總學(xué)分+@xfwhere學(xué)號=(select學(xué)號frominserted)endend輸入、修改成績返回YESNO成績合格?@xf=課程學(xué)分更新總學(xué)分+@xf得到新成績?nèi)⒔鉀Q問題三、解決問題處理人信息罰單號處理人罰款金額………………罰款記錄處理人駕駛證積分………………罰單信息罰單號車牌

溫馨提示

  • 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

提交評論