程式碼如下:alter table SC Drop constraint FK_SC--刪除外來鍵約束CREATE TRIGGER trig_insert ON SC--在SC表中建立trig_insert觸發器 AFTER INSERT--insert為觸發事件,after則為觸發的時機 AS IF NOT EXISTS(SELECT * FROM Course,inserted where Course.Cno=inserted.Cno) --向SC表插入資料時,檢查插入資料的課程號是否存在於Course表中 begin print"插入的課程號不在課程表中"--出錯提示 rollback END測試觸發器: insert into SC VALUES("201215130","2","78");--命令成功執行 INSERT INTO SC VALUES("201215131","10","78");--事務在觸發器中結束。批處理已中止擴充套件資料觸發器是由事件來觸發某個操作。這些事件包括INSERT語句、UPDATE語句和DELETE語句。當資料庫系統執行這些事件時,會啟用促發其執行相應的操作。SQL觸發器,是一種特殊型別的儲存過程,不由使用者直接呼叫。它在指定的表中的資料發生變化時自動生效。喚醒呼叫觸發器以響應 INSERT、UPDATE 或 DELETE 語句。他可以查詢其它表,並可以包含複雜的Transact-SQL語句。將觸發器和觸發它的語句作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如,磁碟空間不足),則整個事務即自動回滾。常常用於強制業務規則和資料完整性。參考資料來源:
程式碼如下:alter table SC Drop constraint FK_SC--刪除外來鍵約束CREATE TRIGGER trig_insert ON SC--在SC表中建立trig_insert觸發器 AFTER INSERT--insert為觸發事件,after則為觸發的時機 AS IF NOT EXISTS(SELECT * FROM Course,inserted where Course.Cno=inserted.Cno) --向SC表插入資料時,檢查插入資料的課程號是否存在於Course表中 begin print"插入的課程號不在課程表中"--出錯提示 rollback END測試觸發器: insert into SC VALUES("201215130","2","78");--命令成功執行 INSERT INTO SC VALUES("201215131","10","78");--事務在觸發器中結束。批處理已中止擴充套件資料觸發器是由事件來觸發某個操作。這些事件包括INSERT語句、UPDATE語句和DELETE語句。當資料庫系統執行這些事件時,會啟用促發其執行相應的操作。SQL觸發器,是一種特殊型別的儲存過程,不由使用者直接呼叫。它在指定的表中的資料發生變化時自動生效。喚醒呼叫觸發器以響應 INSERT、UPDATE 或 DELETE 語句。他可以查詢其它表,並可以包含複雜的Transact-SQL語句。將觸發器和觸發它的語句作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如,磁碟空間不足),則整個事務即自動回滾。常常用於強制業務規則和資料完整性。參考資料來源: