【正文】
NTO SC VALUES(39。2010000139。,39。1039。,95)UPDATE SC SET Cno = 39。1039。 Where Cno=39。139。UPDATE Course SET Cno = 39。1039。 Where Cno=39。339。(2)執(zhí)行下面的語(yǔ)句檢查對(duì)被引用表的約束DELETE Student WHERE Sno=39。2010002139。DELETE Student WHERE Sno=39。2010000139。UPDATE Course SET Cno = 39。1039。 WHERE Cname = 39。數(shù)據(jù)庫(kù)系統(tǒng)原理39。三、觸發(fā)器的定義及使用1.定義觸發(fā)器(1)定義一個(gè)觸發(fā)器,實(shí)現(xiàn)有關(guān)學(xué)分的完整性約束:當(dāng)向SC表插入一行選課記錄時(shí),自動(dòng)將該課程的學(xué)分累加到該學(xué)生的總學(xué)分中。CREATE TRIGGER tr_INSERT ON SC FOR INSERT AS 聲明變量 DECLARE @sno char(8) DECLARE @cridit int DECLARE @o char(4) 提取插入的數(shù)據(jù) SELECT @sno=Sno,@o=Cno FROM inserted 提取學(xué)生的總學(xué)分 SELECT @cridit = Ccredit FROM SC join Course ON ( = ) WHERE = @o 更新總學(xué)分 UPDATE Student SET Stotal = Stotal + @cridit WHERE Sno = @snoGO(2)定義一個(gè)觸發(fā)器,實(shí)現(xiàn)對(duì)SC表的操作登記:當(dāng)用戶(hù)向SC表插入或修改時(shí),記錄該操作到數(shù)據(jù)庫(kù)中。l 創(chuàng)建日志登記表:CREATE TABLE LOG_TABLE( username char(10), 操作人員 date datetime, 修改時(shí)間 Sno char(8) , 學(xué)生學(xué)號(hào) Cno char(4) 課程號(hào))l 創(chuàng)建日志登記觸發(fā)器:CREATE TRIGGER tr_UPDATE ON SC FOR INSERT,UPDATE AS DECLARE @sno char(8) DECLARE @o char(4) DECLARE @new smallint SELECT @sno=Sno,@o=Cno FROM inserted INSERT INTO LOG_TABLE VALUES(CURRENT_USER,getdate(),@Sno,@Cno)。GO(3)執(zhí)行插入操作,觸發(fā)觸發(fā)器:INSERT INTO SC VALUES(39。2010000139。,39。639。,95)(4)驗(yàn)證觸發(fā)器是否觸發(fā)select * from studentselect * from LOG_TABLE