資料庫student表
1. 在資料庫中建立一個觸發器:當學生表student中插入一個新同學時,就會顯示所有的同學的信息
代碼如下:
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');--事務在觸發器中結束。
批處理已中止
(1)資料庫student表擴展閱讀
觸發器是由事件來觸發某個操作。這些事件包括INSERT語句、UPDATE語句和DELETE語句。當資料庫系統執行這些事件時,會激活促發其執行相應的操作。
SQL觸發器,是一種特殊類型的存儲過程,不由用戶直接調用。它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應 INSERT、UPDATE 或 DELETE 語句。他可以查詢其它表,並可以包含復雜的Transact-SQL語句。
將觸發器和觸發它的語句作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如,磁碟空間不足),則整個事務即自動回滾。常常用於強制業務規則和數據完整性。