




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實訓(xùn)14觸發(fā)器實訓(xùn)目的1.掌握觸發(fā)器的創(chuàng)建、修改和刪除操作;2.掌握觸發(fā)器的觸發(fā)執(zhí)行;3.理解觸發(fā)器與約束的不同。實訓(xùn)重難點1.觸發(fā)器的創(chuàng)建;2.觸發(fā)器的執(zhí)行原理(難點)。實訓(xùn)準(zhǔn)備請附加數(shù)據(jù)庫,相關(guān)操作詳見實訓(xùn)6中的“實訓(xùn)準(zhǔn)備”。除了使用約束來完成數(shù)據(jù)的用戶自定義完整性,還可以使用觸發(fā)器來實現(xiàn)用戶自定義完整性。本書介紹了DML觸發(fā)器,它有三種類型:INSERT觸發(fā)器、UPDATE觸發(fā)器和DELETE觸發(fā)器。實訓(xùn)內(nèi)容第一題【存儲過程與觸發(fā)器的比較】1.設(shè)計一個存儲過程proc_update,當(dāng)向零件表中修改某指定零件名稱時,如果該零件在供應(yīng)零件表中已有記錄,則提示“該零件名稱不能進(jìn)行修改”,并拒絕修改,否則可以修改。參考答案:createprocedureproc_update@零件代號char(5),@零件名稱varchar(50)asbeginifnotexists(select*from零件where零件代號=@零件代號)update零件set零件名=@零件名稱where零件代號=@零件代號elseprint'該零件名稱不能進(jìn)行修改'end--調(diào)用過程:execproc_update'P01','新的零件名稱'2.設(shè)計一個觸發(fā)器trigger_update,當(dāng)向零件表中修改零件名稱時觸發(fā)該觸發(fā)器,如果該零件在供應(yīng)零件表中已有記錄,則該零件名稱不能進(jìn)行修改,否則可以修改。參考答案:createtriggertrigger_updateon零件forupdate--inserteddeletedasbegin ifupdate(零件名) beginifexists(select*from供應(yīng)零件A innerjoininsertedonA.零件代號=inserted.零件代號)rollbacktransactionendend--調(diào)用:update零件set零件名='PP01'where零件代號='P08'第二題【觸發(fā)器練習(xí)】1.在零件表中編寫update觸發(fā)器sc_update,將其修改前后的信息保存在SC_log表中:SC_log(id,零件代號,零件名稱,規(guī)格,修改時間)。提示:請先創(chuàng)建SC_log表,字段類型參照零件表。參考答案:先創(chuàng)建SC_log表:createtablesc_log(idintidentity(1,1),零件代號char(5)notnull,零件名稱varchar(50)notnull,規(guī)格char(8)notnull,修改時間datetime)--插入一條數(shù)據(jù):insertintosc_log(零件代號,零件名稱,規(guī)格,修改時間)values('P09','PP08','GG08','2022-04-1712:00:00')--查詢sc_log表select*fromsc_log編寫觸發(fā)器:createtriggersc_updateon零件forupdate--deletedinsertedasbegininsertintosc_log(零件代號,零件名稱,規(guī)格)select零件代號,零件名,規(guī)格fromdeletedinsertintosc_log(零件代號,零件名稱,規(guī)格)select零件代號,零件名,規(guī)格frominsertedend--測試語句:update零件set規(guī)格='GG08'--查詢sc_log表select*fromsc_log2.在工程表中編寫update觸發(fā)器gc_update,當(dāng)修改“預(yù)算”字段時,如果修改后的預(yù)算超過100000元,則提示“預(yù)算已超上限”,修改不能實現(xiàn),否則可以修改。參考答案:--創(chuàng)建觸發(fā)器createtriggergc_updateon工程forupdate--deletedinsertedasbeginifupdate(預(yù)算)beginifexists(select*frominsertedwhere預(yù)算>100000) print'預(yù)算已超上限100000' rollbacktransactionendend--測試語句:update工程set預(yù)算=110000where工程代號='J01'3.以下兩條語句的執(zhí)行結(jié)果有何不同,為什么?UPDATE工程SET預(yù)算=110000WHERE工程代號='J01'UPDATE工程SET預(yù)算=120000WHERE工程代號='J01'參考答案:本題考查的是觸發(fā)器和檢查約束的用法,所以這里如果需要驗證,可以給工程表加一個檢查約束,然后執(zhí)行后就有區(qū)別了。--添加一個檢查約束:ALTERTABLE工程ADDCONSTRAINTCHK_預(yù)算CHECK(預(yù)算>=0AND預(yù)算<=110000)UPDATE工程SET預(yù)算=110000WHERE工程代號
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小雞插畫測試題及答案
- 激光技術(shù)工程師證書考試試題及答案的解析技巧
- 當(dāng)代文化產(chǎn)業(yè)管理試題及答案
- 系統(tǒng)架構(gòu)設(shè)計師考試人際交往題目及答案
- 經(jīng)濟(jì)師保險 試題及答案
- 數(shù)學(xué)概念測試題及答案
- 新課改地區(qū)高三政治期末考試選擇題匯編專練-專題十二發(fā)展中國特色社會主義文化(下)
- 系統(tǒng)架構(gòu)設(shè)計師多領(lǐng)域技術(shù)融合試題及答案
- 系統(tǒng)規(guī)劃與管理師考試常見問題的自我答疑與技巧提升研究試題及答案
- 母豬行為控制的科學(xué)技術(shù)試題及答案
- 湖北省武漢市2025屆高中畢業(yè)生四月調(diào)研考試數(shù)學(xué)試卷及答案(武漢四調(diào))
- 2025-2030中國實驗動物行業(yè)市場深度調(diào)研及市場前瞻與投資戰(zhàn)略研究報告
- 湖南湘潭高新集團(tuán)有限公司招聘考試真題2024
- 2025春季學(xué)期國開電大本科《政府經(jīng)濟(jì)學(xué)》一平臺在線形考(形考任務(wù)1至4)試題及答案
- 2025至2030年中國臺式特定電磁波譜治療器數(shù)據(jù)監(jiān)測研究報告
- 正式戀愛協(xié)議書
- 2024年多媒體應(yīng)用設(shè)計師理論知識試題及答案
- 創(chuàng)建全國文明城市培訓(xùn)
- 2024-2025學(xué)年七年級數(shù)學(xué)人教版(2024)下學(xué)期期中考試模擬卷A卷(含解析)
- 2025年蘭州糧油集團(tuán)有限公司招聘筆試參考題庫含答案解析
- GB 21258-2024燃煤發(fā)電機(jī)組單位產(chǎn)品能源消耗限額
評論
0/150
提交評論