版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)9觸發(fā)器
在SQLServer中,觸發(fā)器同存儲(chǔ)過程一樣重要,它們都是用Tranact-SQL語言所編寫的程序。通過本實(shí)驗(yàn)來學(xué)習(xí)、掌握觸發(fā)器的創(chuàng)建、修改、刪除、執(zhí)行的方法?!局R(shí)要點(diǎn)】1.觸發(fā)器(Trigger)觸發(fā)器(trigger)是一種特殊類型的存儲(chǔ)過程,它也是用Tranact-SQL語言編寫的程序。存儲(chǔ)過程是由用戶利用命令EXECUTE執(zhí)行它,而觸發(fā)器是在用戶要對(duì)某一表內(nèi)的數(shù)據(jù)做插入INSERT、更新UPDATE、刪除DELETE時(shí)被觸發(fā)執(zhí)行。通常我們使用觸發(fā)器來檢查用戶對(duì)數(shù)據(jù)庫表的更新是否合乎整個(gè)應(yīng)用系統(tǒng)的需求和合乎商業(yè)規(guī)則以維持表內(nèi)數(shù)據(jù)的完整性和正確性。2.觸發(fā)器的作用(1)觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實(shí)現(xiàn)級(jí)聯(lián)更改。通過級(jí)聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。(2)觸發(fā)器可以強(qiáng)制比用CHECK約束定義的約束更為復(fù)雜的約束。與CHECK約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個(gè)表中的SELECT比較插入或更新的數(shù)據(jù),以及執(zhí)行其它操作,如修改數(shù)據(jù)或顯示用戶定義錯(cuò)誤信息。實(shí)驗(yàn)9觸發(fā)器觸發(fā)器的主要好處在于它們可以包含使用Transact-SQL代碼的復(fù)雜處理邏輯。因此,觸發(fā)器可以支持約束的所有功能(3)觸發(fā)器也可以評(píng)估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對(duì)策。(4)一個(gè)表中的多個(gè)同類觸發(fā)器(INSERT、UPDATE或DELETE)允許采取多個(gè)不同的對(duì)策以響應(yīng)同一個(gè)修改語句。3.觸發(fā)器類型UPDATEINSERTDELETE4.創(chuàng)建觸發(fā)器的SQL語句CREATETRIGGER觸發(fā)器名ON{表名|視圖名
}
{
{{FOR|AFTER|INSTEADOF}{[INSERT][,UPDATE][,DELETE]}
AS
[{IFUPDATE(列名)[{AND|OR}UPDATE(列名
)]
[...n
]
}]
SQL語句[...n
]
}
}
實(shí)驗(yàn)9觸發(fā)器
5.修改觸發(fā)器的SQL語句ALTERTRIGGER觸發(fā)器名
ON{表名|視圖名
}
{
{{FOR|AFTER|INSTEADOF}{[INSERT][,UPDATE][,DELETE]}
AS
[{IFUPDATE(列名)[{AND|OR}UPDATE(列名)]
[...n]
}]
SQL語句[...n
]
}
}6.刪除觸發(fā)器的SQL語句
DROPTRIGGER{觸發(fā)器名
}[,...n
]7.觸發(fā)器執(zhí)行的時(shí)間(1)在UPDATE、INSERT、DELETE語句執(zhí)行后自動(dòng)觸發(fā)執(zhí)行。(2)對(duì)“FOR|AFTER”選項(xiàng),觸發(fā)器表中若定義了約束,則先處理約束,后執(zhí)行觸發(fā)器程序?!緦?shí)驗(yàn)?zāi)康摹空莆沼|發(fā)器的創(chuàng)建、修改、刪除及其使用方法。掌握觸發(fā)器的功能。
實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
【實(shí)驗(yàn)?zāi)康摹空莆帐褂闷髽I(yè)管理器創(chuàng)建觸發(fā)器;掌握使用SQL創(chuàng)建觸發(fā)器;掌握觸發(fā)器的執(zhí)行?!緦?shí)驗(yàn)內(nèi)容】用企業(yè)管理器為表S創(chuàng)建一級(jí)聯(lián)更新觸發(fā)器TRIGGER_S。要求:若修改S表中一學(xué)生的學(xué)號(hào),則SC表中與該學(xué)生相關(guān)的學(xué)號(hào)自動(dòng)修改。用企業(yè)管理器為表SC創(chuàng)建一限制更新觸發(fā)器TRIGGER_SC。要求:若修改SC表中一記錄的學(xué)號(hào),則要檢查表S中是否存在與該學(xué)號(hào)相同的記錄,若有則不許修改,若沒有則可修改。用SQL為表SC創(chuàng)建一觸發(fā)器Score_sc_tri。要求:當(dāng)插入一個(gè)記錄或修改成績時(shí),確保此記錄的成績?cè)?~100之間。用SQL為表C創(chuàng)建一級(jí)聯(lián)刪除觸發(fā)器TRIGGER_DC:通過課程名從C表中刪除某課程信息,同時(shí)刪除SC表中與此課程相關(guān)的選課記錄。實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
【實(shí)驗(yàn)步驟】1.用企業(yè)管理器為表S創(chuàng)建一級(jí)聯(lián)更新觸發(fā)器TRIGGER_S。(1)創(chuàng)建觸發(fā)器。
創(chuàng)建觸發(fā)器命令
觸發(fā)器屬性窗口實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
創(chuàng)建觸發(fā)器實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器(2)驗(yàn)證觸發(fā)器的作用
表S和表SC中的數(shù)據(jù)(a)數(shù)據(jù)表S(b)數(shù)據(jù)表SC觸發(fā)器級(jí)聯(lián)更新表S和表SC中的數(shù)據(jù)(a)數(shù)據(jù)表S(b)數(shù)據(jù)表SC實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
2.企業(yè)管理器為表SC創(chuàng)建一限制更新觸發(fā)器TRIGGER_SC
要求:若修改SC表中一記錄的學(xué)號(hào),則要檢查表S中是否存在與該學(xué)號(hào)相同的記錄,若有則不許修改,若沒有則可修改。(1)創(chuàng)建觸發(fā)器
(2)驗(yàn)證觸發(fā)器的作用創(chuàng)建觸發(fā)器TRIGGER_SC觸發(fā)器級(jí)聯(lián)更新表S和表SC中的數(shù)據(jù)(a)數(shù)據(jù)表S(b)數(shù)據(jù)表SC實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
3.用SQL為表SC創(chuàng)建一觸發(fā)器Score_sc_tri
要求:當(dāng)插入一個(gè)記錄或修改成績時(shí),確保此記錄的成績?cè)?—100之間。(1)創(chuàng)建觸發(fā)器數(shù)據(jù)庫jxsk的觸發(fā)器對(duì)象創(chuàng)建觸發(fā)器的SQL實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
3.用SQL為表SC創(chuàng)建一觸發(fā)器Score_sc_tri
要求:當(dāng)插入一個(gè)記錄或修改成績時(shí),確保此記錄的成績?cè)?~100之間。(2)驗(yàn)證觸發(fā)器的作用
驗(yàn)證觸發(fā)器的SQL操作操作后的表SC數(shù)據(jù)表SC的數(shù)據(jù)表實(shí)驗(yàn)9.1創(chuàng)建和執(zhí)行觸發(fā)器
4.用SQL為表C創(chuàng)建一個(gè)級(jí)聯(lián)刪除觸發(fā)器TRIGGER_DC:通過課程名從C表中刪除某課程信息,同時(shí)刪除SC表中與此課程相關(guān)的選課記錄(1)創(chuàng)建觸發(fā)器
執(zhí)行SQL創(chuàng)建觸發(fā)器
數(shù)據(jù)庫jxsk中的觸發(fā)器實(shí)驗(yàn)9觸發(fā)器
(2)驗(yàn)證觸發(fā)器的作用。
為執(zhí)行刪除SQL時(shí)表C和SC數(shù)據(jù)窗口(a)表C數(shù)據(jù)窗口(b)表SC數(shù)據(jù)窗口對(duì)表C執(zhí)行刪除SQL實(shí)驗(yàn)9觸發(fā)器
(a)C表數(shù)據(jù)
刪除記錄后的C和SC表數(shù)據(jù)(b)SC表數(shù)據(jù)實(shí)驗(yàn)9.2修改觸發(fā)器【實(shí)驗(yàn)?zāi)康摹空莆帐褂闷髽I(yè)管理器修改觸發(fā)器;掌握使用SQL修改觸發(fā)器?!緦?shí)驗(yàn)內(nèi)容】用企業(yè)管理器修改觸發(fā)器TRIGGER_S。要求:若刪除表S中某一個(gè)學(xué)生的記錄信息,則自動(dòng)刪除SC表中與學(xué)生相關(guān)的記錄信息。用SQL修改表C的觸發(fā)器TRIGGER_DC:通過課程名從C表中刪除某課程信息,同時(shí)刪除SC表和TC表中與此課程相關(guān)的記錄。
實(shí)驗(yàn)9.2修改觸發(fā)器
【實(shí)驗(yàn)步驟】1.用企業(yè)管理器修改表S的觸發(fā)器TRIGGER_S
創(chuàng)建觸發(fā)器命令
觸發(fā)器屬性窗口把文本框中的SQL語句修改成下面的內(nèi)容:CreatetriggerTRIGGER_SOnSForDELETEAsdeclare@SNO_DELCHAR(2)Select@SNO_DEL=SNOfromDELETEDDELETEfromSCwhereSNO=@SNO_DEL實(shí)驗(yàn)9.2修改觸發(fā)器
2.用SQL修改表C的觸發(fā)器TRIGGER_DC:要求:通過課程名從C表中刪除某課程信息,同時(shí)刪除SC表和TC表中與此課程相關(guān)的記錄。在查詢窗口中輸入下面SQL語句:USEjxskGOAltertriggerTRIGGER_DCOnSCForDELETEAsdeclare@CNO_DELCHAR(2)Select@CNO_DEL=CNOfromDELETEDDELETEfromSCWHERECNO=@CNO_DELDELETEfromTCWHERECNO=@CNO_DELGO實(shí)驗(yàn)9.3刪除觸發(fā)器
【實(shí)驗(yàn)?zāi)康摹空莆帐褂闷髽I(yè)管理器刪除觸發(fā)器;掌握使用SQL刪除觸發(fā)器?!緦?shí)驗(yàn)內(nèi)容】用企業(yè)管理器刪除表S的觸發(fā)器TRIGGER_S。;用SQL刪除表C的觸發(fā)器TRIGGER_DC。【實(shí)驗(yàn)步驟】1.用企業(yè)管理器刪除表S的觸發(fā)器TRIGGER_S
刪除觸發(fā)器TRIGGER_S實(shí)驗(yàn)9.3刪除觸發(fā)器
2.用SQL刪除表C的觸發(fā)器TRIGGER_DC。在查詢窗口中輸入下面SQL語句:USEjxskDROPTRIGGERTRIGGER_DCGO實(shí)驗(yàn)9習(xí)題
【實(shí)驗(yàn)題報(bào)告】內(nèi)容與要求基于實(shí)驗(yàn)六中的“教學(xué)數(shù)據(jù)庫jxsk”,創(chuàng)建下面觸發(fā)器,并給出正反實(shí)例:1.為表SC創(chuàng)建一觸發(fā)器:當(dāng)插入或修改一個(gè)記錄時(shí),確保此記錄的成績?cè)?—100之間。2.為教師表T創(chuàng)建一觸發(fā)器:男職工年齡不能超過60周歲,女職工職稱是“教授”的年齡不超過60歲,其他女職工年齡不能超過55歲。3.為表C、表TC和表SC創(chuàng)建參照完整性:級(jí)聯(lián)刪除和級(jí)聯(lián)修改觸發(fā)器。4.為表T創(chuàng)建一觸發(fā)器:當(dāng)職稱從“講師”晉升為“副教授”時(shí),崗位津貼自動(dòng)增加500元;從“副教授”晉升為“教授”時(shí),崗位津貼自動(dòng)增加8900元。5.為表SC創(chuàng)建一觸發(fā)器,將成績按下列對(duì)應(yīng)關(guān)系由分?jǐn)?shù)轉(zhuǎn)換成等級(jí):小于60分:不及格;60—70分:及格;70—80:中;80—90分:良;90以上:優(yōu)。實(shí)驗(yàn)9習(xí)題
【思考題】1.你認(rèn)為用觸發(fā)器都能定義哪些約束?答:
。2.都可以為哪些操作創(chuàng)建觸發(fā)器?可以為查詢操作創(chuàng)建觸發(fā)器嗎?答:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高標(biāo)準(zhǔn)農(nóng)田建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年新型社區(qū)服務(wù)平臺(tái)建設(shè)可行性研究報(bào)告
- 新疆維吾爾自治區(qū)氣象局2026年度事業(yè)單位公開招聘應(yīng)屆畢業(yè)生備考題庫(第二批第1號(hào))完整答案詳解
- 2025年廣州市民政局直屬事業(yè)單位第一次公開招聘工作人員25人備考題庫及1套完整答案詳解
- 2025年興業(yè)銀行南寧分行社會(huì)招聘備考題庫有答案詳解
- 國家知識(shí)產(chǎn)權(quán)局專利局專利審查協(xié)作四川中心2026年度專利審查員公開招聘備考題庫有答案詳解
- 中化地質(zhì)礦山總局地質(zhì)研究院2026年高校應(yīng)屆畢業(yè)生招聘備考題庫及1套參考答案詳解
- 2025年合肥市肥東縣人民政府行政復(fù)議委員會(huì)面向社會(huì)招聘非常任委員的備考題庫完整答案詳解
- 玉溪市華寧縣教育體育系統(tǒng)2026年校園招聘緊缺專業(yè)教師30人備考題庫及完整答案詳解一套
- 中共四川省委黨校(四川行政學(xué)院)2026年公開考核招聘專職教師18人備考題庫及答案詳解參考
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 房屋中介述職報(bào)告
- 居家養(yǎng)老上門服務(wù)投標(biāo)文件
- 結(jié)構(gòu)力學(xué)課后習(xí)題答案(朱慈勉)
- 2mm土工膜長絲土工布檢測報(bào)告合格證
- 《馬克思主義基本原理》課后思考題匯編
- 第三單元(整體教學(xué)設(shè)計(jì))九年級(jí)語文上冊(cè)大單元教學(xué)名師備課系列(統(tǒng)編版)
- 復(fù)方木尼孜其顆??寡鬃饔玫碾娚砗退幚韺W(xué)研究
- 備考2024四川省家庭教育指導(dǎo)師試題及答案三
- 戶口遷出證明自愿書
- 全套管全回轉(zhuǎn)鉆機(jī)鉆孔咬合樁施工工藝
評(píng)論
0/150
提交評(píng)論