數(shù)據(jù)庫實(shí)驗(yàn)八_第1頁
數(shù)據(jù)庫實(shí)驗(yàn)八_第2頁
數(shù)據(jù)庫實(shí)驗(yàn)八_第3頁
數(shù)據(jù)庫實(shí)驗(yàn)八_第4頁
數(shù)據(jù)庫實(shí)驗(yàn)八_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、計(jì)算機(jī)科學(xué)與技術(shù)系 實(shí) 驗(yàn) 報(bào) 告專業(yè)名稱 軟件工程 課程名稱 數(shù)據(jù)庫原理與設(shè)計(jì) 項(xiàng)目名稱 觸發(fā)器及應(yīng)用 班 級(jí) 學(xué) 號(hào) 姓 名 同組人員 無 實(shí)驗(yàn)日期 2014/12/23 一、實(shí)驗(yàn)?zāi)康呐c要求: (簡述本次實(shí)驗(yàn)要求達(dá)到的目的,涉及到的相關(guān)知識(shí)點(diǎn),實(shí)驗(yàn)的具體要求。)1復(fù)習(xí)和掌握教材5.6節(jié)內(nèi)容。2預(yù)習(xí)SQL Server軟件的使用和SQL Server中觸發(fā)器的概念、創(chuàng)建和執(zhí)行過程。3準(zhǔn)備好上機(jī)所需的程序。4學(xué)習(xí)觸發(fā)器的使用,加深對(duì)觸發(fā)器功能和作用的理解。5體會(huì)觸發(fā)器執(zhí)行的時(shí)機(jī)。二、實(shí)驗(yàn)內(nèi)容(根據(jù)本次實(shí)驗(yàn)項(xiàng)目的具體任務(wù)和要求,完成相關(guān)內(nèi)容,可包括:實(shí)驗(yàn)?zāi)康?、算法原理、?shí)驗(yàn)儀器、設(shè)備選型及連線圖

2、、算法描述或流程圖、源代碼、實(shí)驗(yàn)運(yùn)行步驟、關(guān)鍵技術(shù)分析、測試數(shù)據(jù)與實(shí)驗(yàn)結(jié)果、其他 )(1)為選課表分別建立插入和更新觸發(fā)器,如果當(dāng)前學(xué)生累計(jì)不及格門數(shù)達(dá)到5則給出警示信息。(2)為課程表分別建立插入和更新觸發(fā)器來建立約束規(guī)則:“專業(yè)基礎(chǔ)”課的教師必須為“教授”或“副教授”,如果不滿足約束則拒絕操作,并給出錯(cuò)誤信息。(3)自行再分別設(shè)計(jì)23個(gè)觸發(fā)器(在實(shí)驗(yàn)報(bào)告中要準(zhǔn)確描述功能需求)。(4)設(shè)計(jì)并執(zhí)行相關(guān)的操作,體會(huì)DML觸發(fā)器的效果和作用。實(shí)驗(yàn)原理 1. 建立觸發(fā)器的語句是:CREATE TRIGGER schema_name.trigger-nameON table |viewFOR INSE

3、RT | UPDATE | DELETE ASIF UPDATE (column) AND | OR UPDATE (column)sql-statementcreate trigger xuankeon 選課for insert,updateas declare amount int, number char(8)select number=學(xué)號(hào) from insertedif number is not nullbeginselect amount=(select count(*) from 選課 where 成績 <60 and 學(xué)號(hào)=number)if amount>=5

4、begin raiserror('此學(xué)生的累計(jì)不及格科目已達(dá)到門',16,10) rollback transactionendend插入操作insert into 選課 values('12001','6','55')insert into 選課 values('12001','7','59')insert into 選課 values('12001','8','30')insert into 選課 values('12001

5、','9','56')更新操作update 選課 set 成績=66where 學(xué)號(hào)=12001 and 課程編號(hào)='6'update 選課 set 成績=45where 學(xué)號(hào)=12001 and 課程編號(hào)='8'create trigger kechengbiaoon 課程for insert,updateas declare professional char(10)select professional=職稱from 教師where 教師編號(hào) in( select 責(zé)任教師from 課程where 課程性質(zhì)='

6、;專業(yè)基礎(chǔ)')if professional not in('教授','副教授')beginraiserror ('操作有誤,禁止!',16,1)rollback transactionendinsert into 課程 values ('11','c+','14001',8,'專業(yè)基礎(chǔ)')insert into 課程 values ('12','計(jì)算機(jī)網(wǎng)絡(luò)','14002',8,'公共基礎(chǔ)')update 教師

7、 set 職稱='教授'where 教師編號(hào)=14006update 課程 set 課程性質(zhì)='專業(yè)基礎(chǔ)'where 責(zé)任教師=14008三、實(shí)驗(yàn)分析與小結(jié):(實(shí)驗(yàn)過程中的問題分析、產(chǎn)生的原因以及解決方法;實(shí)驗(yàn)結(jié)果分析; 有待優(yōu)化思路)問題一:消息提示end 附件有語法錯(cuò)誤。產(chǎn)生原因:一個(gè)if 條件對(duì)應(yīng)一個(gè)end 語句。但同時(shí),if 條件語句后面必須有begin語句,否則會(huì)報(bào)錯(cuò)如下圖情況。解決方法:添加 begin 語句,ifbeginend語句要同時(shí)存在。問題二:觸發(fā)器命令可以成功執(zhí)行。但不管如何插入或更新某同學(xué)的一項(xiàng)或幾項(xiàng)成績(分?jǐn)?shù)<60),消息窗口始

8、終沒有警告出現(xiàn),反而出現(xiàn)如下圖所示結(jié)果。 產(chǎn)生原因:觀察上圖消息窗口提示查詢已經(jīng)成功執(zhí)行。這說明,命令成功執(zhí)行后,進(jìn)行插入或更新操作時(shí),程序并沒有啟動(dòng)觸發(fā)器,而是只執(zhí)行了語句中的查詢命令后就終止了??赡苁撬幷Z句中無返回值導(dǎo)致。解決方法:對(duì)比書上例7-14發(fā)現(xiàn)問題出現(xiàn)在select number from inserted 這條語句。聲明的學(xué)號(hào)變量number無對(duì)應(yīng)的值,修改語句select number=學(xué)號(hào) from inserted成功解決。1、 實(shí)驗(yàn)結(jié)果分析;有待優(yōu)化思路。結(jié)果分析,當(dāng)出現(xiàn)警告時(shí),程序執(zhí)行插入或更新操作的結(jié)果在課程表中沒有出現(xiàn),說明觸發(fā)器約束成功。因?yàn)橛|發(fā)器是對(duì)課程表執(zhí)行約束操作,故當(dāng)在教師表中對(duì)課程性質(zhì)為“專業(yè)基礎(chǔ)”的授課教師的職稱進(jìn)行修改,update 教師 set 職稱='教授'where 教師編號(hào)=0101不會(huì)觸動(dòng)觸發(fā)器。 四、其它思考題:1 為什么要使用觸發(fā)器?觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實(shí)現(xiàn)級(jí)聯(lián)更改,不過,通過級(jí)聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強(qiáng)制用比CHECK約束定義的約束更為復(fù)雜的約束。與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個(gè)表中的 S

溫馨提示

  • 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)論