版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上計算機科學與技術(shù)系 實 驗 報 告專業(yè)名稱 軟件工程 課程名稱 數(shù)據(jù)庫原理與設計 項目名稱 觸發(fā)器及應用 班 級 學 號 姓 名 同組人員 無 實驗日期 2014/12/23 一、實驗目的與要求: (簡述本次實驗要求達到的目的,涉及到的相關(guān)知識點,實驗的具體要求。)1復習和掌握教材5.6節(jié)內(nèi)容。2預習SQL Server軟件的使用和SQL Server中觸發(fā)器的概念、創(chuàng)建和執(zhí)行過程。3準備好上機所需的程序。4學習觸發(fā)器的使用,加深對觸發(fā)器功能和作用的理解。5體會觸發(fā)器執(zhí)行的時機。二、實驗內(nèi)容(根據(jù)本次實驗項目的具體任務和要求,完成相關(guān)內(nèi)容,可包括:實驗目的、算法原理、
2、實驗儀器、設備選型及連線圖、算法描述或流程圖、源代碼、實驗運行步驟、關(guān)鍵技術(shù)分析、測試數(shù)據(jù)與實驗結(jié)果、其他 )(1)為選課表分別建立插入和更新觸發(fā)器,如果當前學生累計不及格門數(shù)達到5則給出警示信息。(2)為課程表分別建立插入和更新觸發(fā)器來建立約束規(guī)則:“專業(yè)基礎”課的教師必須為“教授”或“副教授”,如果不滿足約束則拒絕操作,并給出錯誤信息。(3)自行再分別設計23個觸發(fā)器(在實驗報告中要準確描述功能需求)。(4)設計并執(zhí)行相關(guān)的操作,體會DML觸發(fā)器的效果和作用。實驗原理 1. 建立觸發(fā)器的語句是:CREATE TRIGGER schema_name.trigger-nameON table
3、|viewFOR INSERT | UPDATE | DELETE ASIF UPDATE (column) AND | OR UPDATE (column)sql-statementcreate trigger xuankeon 選課for insert,updateas declare amount int, number char(8)select number=學號 from insertedif number is not nullbeginselect amount=(select count(*) from 選課 where 成績 <60 and 學號=number)if
4、amount>=5 begin raiserror('此學生的累計不及格科目已達到門',16,10) rollback transactionendend插入操作insert into 選課 values('12001','6','55')insert into 選課 values('12001','7','59')insert into 選課 values('12001','8','30')insert into 選課 valu
5、es('12001','9','56')更新操作update 選課 set 成績=66where 學號=12001 and 課程編號='6'update 選課 set 成績=45where 學號=12001 and 課程編號='8'create trigger kechengbiaoon 課程for insert,updateas declare professional char(10)select professional=職稱from 教師where 教師編號 in( select 責任教師from 課程wh
6、ere 課程性質(zhì)='專業(yè)基礎')if professional not in('教授','副教授')beginraiserror ('操作有誤,禁止!',16,1)rollback transactionendinsert into 課程 values ('11','c+','14001',8,'專業(yè)基礎')insert into 課程 values ('12','計算機網(wǎng)絡','14002',8,'公共基礎
7、39;)update 教師 set 職稱='教授'where 教師編號=14006update 課程 set 課程性質(zhì)='專業(yè)基礎'where 責任教師=14008三、實驗分析與小結(jié):(實驗過程中的問題分析、產(chǎn)生的原因以及解決方法;實驗結(jié)果分析; 有待優(yōu)化思路)問題一:消息提示end 附件有語法錯誤。產(chǎn)生原因:一個if 條件對應一個end 語句。但同時,if 條件語句后面必須有begin語句,否則會報錯如下圖情況。解決方法:添加 begin 語句,ifbeginend語句要同時存在。問題二:觸發(fā)器命令可以成功執(zhí)行。但不管如何插入或更新某同學的一項或幾項成績(分數(shù)
8、<60),消息窗口始終沒有警告出現(xiàn),反而出現(xiàn)如下圖所示結(jié)果。 產(chǎn)生原因:觀察上圖消息窗口提示查詢已經(jīng)成功執(zhí)行。這說明,命令成功執(zhí)行后,進行插入或更新操作時,程序并沒有啟動觸發(fā)器,而是只執(zhí)行了語句中的查詢命令后就終止了??赡苁撬幷Z句中無返回值導致。解決方法:對比書上例7-14發(fā)現(xiàn)問題出現(xiàn)在select number from inserted 這條語句。聲明的學號變量number無對應的值,修改語句select number=學號 from inserted成功解決。1、 實驗結(jié)果分析;有待優(yōu)化思路。結(jié)果分析,當出現(xiàn)警告時,程序執(zhí)行插入或更新操作的結(jié)果在課程表中沒有出現(xiàn),說明觸發(fā)器約束成功。因為觸發(fā)器是對課程表執(zhí)行約束操作,故當在教師表中對課程性質(zhì)為“專業(yè)基礎”的授課教師的職稱進行修改,update 教師 set 職稱='教授'where 教師編號=0101不會觸動觸發(fā)器。 四、其它思考題:1 為什么要使用觸發(fā)器?觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實現(xiàn)級聯(lián)更改,不過,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強制用比約束定義的約束更為復雜的約束。與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個表中的 SELECT 比較
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高三數(shù)學(理)一輪總復習:第九篇 統(tǒng)計與算法 含解析
- 離婚合同小說全文在線閱讀下載
- 個人汽車租賃簡單合同
- 路燈承包合同
- 軟件開發(fā)簽約合同
- pso算法讀書筆記
- 屋頂翻修安全合同模板
- 醫(yī)療行業(yè)的市場拓展經(jīng)驗總結(jié)
- 2025年人教五四新版選修歷史下冊月考試卷含答案
- 2025年新世紀版九年級生物下冊月考試卷含答案
- 五年級下冊語文教案 學習雙重否定句 部編版
- 南京地區(qū)幼兒園室內(nèi)空氣污染物與兒童健康的相關(guān)性研究
- 平安產(chǎn)險陜西省地方財政生豬價格保險條款
- 地震應急救援培訓課件
- 初中物理光學難題難度含解析答案
- 《霍爾效應測量磁場》課件
- 《瘋狂動物城》全本臺詞中英文對照
- 中專數(shù)學(基礎模塊)上冊課件
- 高考作文復習任務驅(qū)動型作文的審題立意課件73張
- 品質(zhì)部經(jīng)理KRA KPI考核表
- 一個28歲的漂亮小媳婦在某公司打工-被老板看上之后
評論
0/150
提交評論