




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)十一存儲(chǔ)過(guò)程實(shí)驗(yàn)十二觸發(fā)器一:實(shí)驗(yàn)?zāi)康暮鸵螅赫莆沾鎯?chǔ)過(guò)程的創(chuàng)立及調(diào)用。理解觸發(fā)器的工作原理,掌握如何使用inserted表和deleted表及如何創(chuàng)立:INSERT、UPDATE、DELETE觸發(fā)器。二:實(shí)驗(yàn)類(lèi)型:設(shè)計(jì)驗(yàn)證三:實(shí)驗(yàn)內(nèi)容:一:有學(xué)員成績(jī)數(shù)據(jù)庫(kù)stu,其中學(xué)員信息表stuinfo和學(xué)生成績(jī)表stumarks如下CREATEDATABASESTUINFOUSESTUCREATETABLESTUINFO(STUNAMEVARCHAR(50),STUNOVARCHAR(50)PRIMARYKEY,STUSEXVARCHAR(50),STUAGEVARCHAR(50),STUADDRESSVARCHAR(50),)CREATETABLESTUMARKS(EXAMNOVARCHAR(10)PRIMARYKEY,STUNOVARCHAR(20),WRITTENEXAMINT,LABEXAMINT,FOREIGNKEY(STUNO)REFERENCESSTUINFO(STUNO),)輸入數(shù)據(jù)USESTUINSERTINTOSTUINFOVALUES('張秋麗','s25301','男','18','北京')INSERTINTOSTUINFOVALUES('李文才','s25302','男','28','地址不詳')INSERTINTOSTUINFOVALUES('李斯文','s25303','女','22','河南')INSERTINTOSTUINFOVALUES('歐陽(yáng)俊雄','s25304','女','34','新疆')INSERTINTOSTUINFOVALUES('梅超風(fēng)','s25305','女','23','地址不詳')USESTUINSERTINTOSTUMARKSVALUES('s271811','s25303','93','59')INSERTINTOSTUMARKSVALUES('s271813','s25302','63','91')INSERTINTOSTUMARKSVALUES('s271816','s25301','90','83')INSERTINTOSTUMARKSVALUES('s271818','s25305','63','53')1.請(qǐng)創(chuàng)立存儲(chǔ)過(guò)程,查看本次考試平均分以及未通過(guò)考試的學(xué)員名單CREATEPROCEDURESTUAS DECLARE@AINT,@BINT,@CVARCHAR(20),@DVARCHAR(20),@EVARCHAR(20),@FINT,@GINT SELECT@A=AVG(WRITTENEXAM),@B=AVG(LABEXAM)FROMSTUMARKSBEGIN IF@A>70AND@B>70 SET@C=’成績(jī)優(yōu)秀’ ELSE SET@C=’本班成績(jī)較差’ ENDPRINT‘筆試平均分為:’+CONVERT(VARCHAR,@A)PRINT‘機(jī)試平均分為:’+CONVERT(VARCHAR,@B)PRINT’本班考試成績(jī):’+CONVERT(VARCHAR,@C)PRINT’****************************’PRINT’參加考試沒(méi)有通過(guò)的學(xué)生’PRINT’*************************’PRINT’STUNAMESTUNOWRITTENEXAMLABEXAM’PRINT’*************************’DECLARESTUDECURSORFORSELECTSTUNAME,STUMARKS.STUNO,WRITTENEXAM,LABEXAMFROMSTUINFO,STUMARKSWHERESTUINFO.STUNO=STUMARKS.STUNOAND(WRITTENEXAM<60ORLABEXAM<60)OPENSTUDEFETCHNEXTFROMSTUDEINTO@D,@E,@F,@GWHILE@@FETCH_STATUS=0BEGIN PRINT @D+’’+@E+’’+CONVERT(VARCHAR(5),@F)+’’+CONVERT(VARCHAR(5),@G) FETCHNEXTFROMSTUDE INTO@D,@E,@F,@GENDCLOSESTUDEDEALLOCATESTUDEEXECSTU2.修改上題:由于每次考試的難易程度不一樣,每次筆試和機(jī)試的及格線可能隨時(shí)變化〔不再是60分〕,這導(dǎo)致考試的評(píng)判結(jié)果也相應(yīng)變化?!蔡崾荆菏褂脦л斎?yún)?shù)的存儲(chǔ)過(guò)程〕DROPPROCSTUDCREATEPROCEDURESTUD@PINTOUTPUT,@QINTOUTPUTASDECLARE@AINT,@BINT,@CVARCHAR(20),@DVARCHAR(20),@EVARCHAR(20),@FINT,@GINT SELECT@A=AVG(WRITTENEXAM),@B=AVG(LABEXAM)FROMSTUMARKSBEGIN IF@A>@QAND@B>@Q SET@C=’成績(jī)優(yōu)秀’ ELSE SET@C=’本班成績(jī)較差’ ENDPRINT‘筆試平均分為:’+CONVERT(VARCHAR,@A)PRINT‘機(jī)試平均分為:’+CONVERT(VARCHAR,@B)PRINT’本班考試成績(jī):’+CONVERT(VARCHAR,@C)PRINT’****************************’PRINT’參加考試沒(méi)有通過(guò)的學(xué)生’PRINT’*************************’PRINT’STUNAMESTUNOWRITTENEXAMLABEXAM’PRINT’*************************’DECLARESTUDECURSORFORSELECTSTUNAME,STUMARKS.STUNO,WRITTENEXAM,LABEXAMFROMSTUINFO,STUMARKSWHERESTUINFO.STUNO=STUMARKS.STUNO AND(WRITTENEXAM<@PORLABEXAM<@P)OPENSTUDEFETCHNEXTFROMSTUDEINTO@D,@E,@F,@GWHILE@@FETCH_STATUS=0BEGIN PRINT @D+’’+@E+’’+CONVERT(VARCHAR(5),@F)+’’+CONVERT(VARCHAR(5),@G) FETCHNEXTFROMSTUDE INTO@D,@E,@F,@GENDCLOSESTUDEDEALLOCATESTUDEEXECSTU(‘70’,’753、修改上題:返回未通過(guò)考試的學(xué)員人數(shù)?!蔡崾荆菏褂脦л敵鰠?shù)的存儲(chǔ)過(guò)程〕DROPPROCSTUDENTCREATEPROCEDURESTUDENT@NINTOUTPUTASSELECT@N=COUNT(*)FROMSTUMARKSWHEREWRITTENEXAM<60ORLABEXAM<60PRINT(’結(jié)果’)DECLARE@NINT EXECSTUDENT@NOUTPUT PRINT(’沒(méi)通過(guò)的人數(shù)為:’+CONVERT(VARCHAR(10),@N)二:建立銀行業(yè)務(wù)數(shù)據(jù)庫(kù)bankdb,其中,帳戶(hù)信息表(bank)存放帳戶(hù)的信息,交易信息表(transInfo)存放每次的交易信息。CREATETABLEBANK(customernamevarchar(20),
cardIDvarchar(10),
currentMoneyfloat(4))CREATETABLETRANSINFO(transDatedatetime,
cardIDVARCHAR(50),transTypevarchar(20),check
(transType='支取'or
transType='存入'),
transMoneyfloat(4),)usebankdbINSERTINTOBANKVALUES('張三','10010001','1000.0000')INSERTINTOBANKVALUES('李四','100110002','1.0000')USEBANKDBINSERTINTOTRANSINFOVALUES('2005-10-1111:30:46.623','10010001','支取','200.0000')1、當(dāng)向交易信息表(transInfo)中插入一條交易信息時(shí),自動(dòng)更新對(duì)應(yīng)帳戶(hù)的余額。2、當(dāng)刪除交易信息表時(shí),要求自動(dòng)備份被刪除的數(shù)據(jù)到表backupTable中。3、跟蹤用戶(hù)的交易,交易金額超過(guò)20000元,那么取消交易,并給出錯(cuò)誤提示。
IFEXISTS(SELECTnameFROMsysobjects
WHEREname='transInfo_in'ANDtype='TR')
DROPTRIGGERtransInfo_in
GO
CREATETRIGGERtransInfo_in
ONtransInfo
FORINSERT
ASDECLARE
@i_transDatedatetime,
@i_cardidint,
@i_transtypevarchar(20),
@i_transmoneyfloat(4)
if
exists
(select
1
from
inserted)
and
not
exists
(select
1
from
deleted)
begin
--查詢(xún)插入信息
SELECT
@i_cardid
=cardID,
@i_transtype=transType,
@i_transmoney=transMoney
FROM
inserted--判斷是否有插入信息
IF(isnull(@i_cardid,0)<>0)
BEGIN
if(@i_transmoney>20000)
--判斷大于20000給出錯(cuò)誤提示,并回滾
begin
RAISERROR('交易金額大于20000元!',16,1)
ROLLBACKTRANSACTION
end
else
begin
updatebanksetcurrentMoney=currentMoney+(case@i_transtypewhen'支取'then-@i_transmoneywhen'存入'then@i_transmoneyelse0end)wherecardID=@i_cardid
end
END
end
IFEXISTS(SELECTnameFROMsysobjects
WHEREname='transInfo_del'ANDtype='TR')
DROPTRIGGERtransInfo_del
GO
CREATETRIGGERtransInfo_del
ONtransInfo
forDELETE
as
DECLARE
@i_transDatedatetime,
@i_cardidint,
@i_transtypevarchar(20),
@i_transmoneyfloat(4)
set@i_cardid=0if
not
exists
(select
1
from
inserted)
and
exists
(select
1
from
deleted)
begin
--查詢(xún)刪除信息
SELECT@i_transDate=transDate,
@i_cardid
=cardID,
@i_transtype=transType,
@i_transmoney=transMoney
FROM
deleted
IF(isnull(@i_cardid,0)<>0)--查詢(xún)是否有刪除信息
BEGIN
--更新主表信息
updatebanksetcurrentMoney=currentMoney+(case@i_transtypewhen'支取'th
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)務(wù)部醫(yī)療事故處理總結(jié)與反思計(jì)劃
- 建筑節(jié)能設(shè)計(jì)模型考核試卷
- 創(chuàng)新實(shí)踐在學(xué)校藝術(shù)教育中的應(yīng)用計(jì)劃
- 貼廣告合同范本
- 手工紙制作中的常見(jiàn)問(wèn)題及解決方法考核試卷
- 食堂租賃合同范本
- 科技創(chuàng)新在環(huán)保生活中的應(yīng)用
- 班主任角色定位與職責(zé)計(jì)劃
- 深度解讀現(xiàn)代商業(yè)著作探索市場(chǎng)先機(jī)
- 2024年12月浙江省第七地質(zhì)大隊(duì)編外人員公開(kāi)招聘6人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解-1
- 異位妊娠護(hù)理查房版本
- 人教版 八年級(jí)數(shù)學(xué)下冊(cè) 第19章 單元綜合測(cè)試卷(2025年春)
- 2025年湖南中醫(yī)藥高等專(zhuān)科學(xué)校高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025新人教版英語(yǔ)七年級(jí)下單詞英譯漢默寫(xiě)表(小學(xué)部分)
- 《聯(lián)合國(guó)教科文:學(xué)生人工智能能力框架》-中文版
- 2023年部編人教版六年級(jí)道德與法治下冊(cè)全冊(cè)課件【完整版】
- 古代傳說(shuō)中的藝術(shù)形象-
- 水電站大壩土建安裝工程懸臂模板施工手冊(cè)
- 首都經(jīng)濟(jì)貿(mào)易大學(xué)本科畢業(yè)論文格式模板范文
- 三體系內(nèi)審檢查表(共58頁(yè)).doc
- 家樂(lè)福 全套管控文件
評(píng)論
0/150
提交評(píng)論