1. 程式人生 > >建立和測試觸發器:向SC表插入資料時,檢查插入資料的課程號是否存在於Course表中(建立之前刪除Cno的外來鍵約束,比較外來鍵約束和觸發器之間的不同)

建立和測試觸發器:向SC表插入資料時,檢查插入資料的課程號是否存在於Course表中(建立之前刪除Cno的外來鍵約束,比較外來鍵約束和觸發器之間的不同)

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');--事務在觸發器中結束。批處理已中止