【文章內(nèi)容簡(jiǎn)介】
)/*成績(jī)表索引*/create unique index index_kscj on kscj(準(zhǔn)考證號(hào))(五)為了實(shí)現(xiàn)表間數(shù)據(jù)的一致性和完整性,創(chuàng)建了觸發(fā)器,具體代碼如下:/*考生信息表觸發(fā)器*/create trigger trigger_ksxx1 on ksxxfor insert,update,deleteasif (SELECT LEN(準(zhǔn)考證號(hào)) FROM inserted)6 or (SELECT LEN(準(zhǔn)考證號(hào)) FROM inserted)6beginraiserror(39。準(zhǔn)考證號(hào)長(zhǎng)度不對(duì)!39。,10,1)rollback transactionendelsebeginprint 39。添加成功!39。endif exists(select * from inserted where 身份證號(hào) in(select 身份證號(hào) from ksxx))begin print 39。身份證號(hào)已經(jīng)存在!39。returnend/*考生考試信息表觸發(fā)器*/create trigger trigger_ksksxxon ksksxxfor insert,update,deleteasif exists(select * from inserted where 準(zhǔn)考證號(hào) in(select 準(zhǔn)考證號(hào) from ksksxx))beginraiserror(39。準(zhǔn)考證號(hào)重復(fù)!39。,16,1)rollback transactionendif not exists(select * from inserted where 考試時(shí)間 like 39。%%%39。+39。 39。+39。%:%%:%39。)beginraiserror(39。時(shí)間格式不對(duì)!39。,16,1)rollback transactionendif not exists(select * from inserted where 考試狀態(tài) in(39。待考39。,39。就緒39。,39。考試中39。,39。結(jié)束39。,39。缺考39。))beginraiserror(39。狀態(tài)錯(cuò)誤!39。,16,1)rollback transactionend/*題庫(kù)表觸發(fā)器*/create trigger trigger_tkon tkfor insert,update,deleteasif exists(select * from inserted where 題目 in(select 題目 from tk))beginraiserror(39。題目重復(fù)!39。,16,1)rollback transactionendif exists(select * from inserted where 題目 like 39。%?39。and 題目類型=2)beginraiserror(39。題目類型錯(cuò)誤!39。,16,1)rollback transactionend/*正確答案表觸發(fā)器*/create trigger trigger_zqdaon zqdafor insert,update,deleteasif exists(select * from inserted where 題號(hào) in(select 題號(hào) from zqda))beginraiserror(39。題號(hào)重復(fù)!39。,16,1)rollback transactionend/*考生答案觸發(fā)器*/create trigger trigger_ksdaon ksdafor insert,update,deleteasif not exists(select * from inserted where 題號(hào)0 and 題號(hào)(select count(題號(hào)) from tk))beginraiserror(39。題號(hào)不在范圍之內(nèi)!39。,16,1)rollback transactionendif not exists(select * from inserted where 考生號(hào) in(select 考生號(hào) from ksksxx where 考試狀態(tài)=39??荚囍?9。))beginraiserror(39??忌?hào)有誤!39。,16,1)rollback transactionend/*考生試卷觸發(fā)器*/create trigger trigger_kssjon kssjfor insert,update,deleteasif exists(select * from inserted where 考生號(hào) in(select 考生號(hào) from kssj))beginraiserror(39??忌嚲硪焉?39。,16,1)rollback transactionend/*考生成績(jī)表觸發(fā)器*/create trigger trigger_kscjon kscjfor insert,update,deleteasif exists(select * from inserted where 準(zhǔn)考證號(hào) in(select 準(zhǔn)考證號(hào) from ksksxx where 考試狀態(tài)=39。結(jié)束39。))beginraiserror(39。準(zhǔn)考證號(hào)錯(cuò)誤!39。,16,1)rollback transactionend(六)對(duì)在線考試系統(tǒng)功能的描述,針對(duì)各功能,創(chuàng)建了不同的存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn),這樣不但可以反復(fù)調(diào)用這些程序,大大減少了客戶端的處理事務(wù),同時(shí)也充分發(fā)揮服務(wù)器的功能,盡量減少網(wǎng)絡(luò)上的堵塞。根據(jù)查詢功能的需要,我創(chuàng)建了相應(yīng)的視圖,基于視圖創(chuàng)建了相應(yīng)的查詢存儲(chǔ)過(guò)程,這些存儲(chǔ)過(guò)程還包括對(duì)各表內(nèi)容信息的添加、刪除和更新。并且在存儲(chǔ)過(guò)程中也相應(yīng)地加入了對(duì)數(shù)據(jù)完整性和一致性的約束條件。同時(shí)還創(chuàng)建了為指定考生或所有考生隨