學生成績資料庫 觸發器

2021-08-20 11:30:56 字數 800 閱讀 3718

use 學生成績

go if exists(select name from sysobjects

where name = 'tr_成績表'and type='tr') ----判斷是否存在相同名稱的觸發器,如果存在 刪除同名觸發器

drop trigger tr_成績表

go create trigger tr_成績表 --建立觸發器

on 成績表

for insert, update --在執行insert ,update 語句時啟用觸發器

as declare @score int

select @score =成績 from inserted

if @score<0 or @score>100

begin

print '請輸入0~100內的成績' --如果成績小於0或者大於100 報錯

rollback

endgo insert into 成績表(學號,課程編號,成績) --在資料表中插入一行錯誤資料,程式報錯

values('000002','019',-11)

go

觸發器分為dml觸發器(可以防止惡意或者錯誤的insert,update,delete操作)、ddl觸發器(防止資料表被誤刪除,主要響應create,alter,drop開頭語句)

注意:ddl觸發器只在執行到觸發觸發器語句時才會被啟用。

資料庫觸發器

觸發器是一種特殊型別的儲存過程,它不同於我們前面介紹過的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而 被直接呼叫。當對某一表進行諸如update insert delete 這些操作時,sql server 就會自動執行觸發器所定義的sql 語句,從而確保對資料...

資料庫觸發器

最近做了個觸發器的例子 create trigger tru user on user for update asif update status begin update user set stopflag 1 from inserted where user.userid inserted.us...

資料庫 觸發器

觸發器的概念 是使用者定義在關係表上的一類有事件驅動的特殊過程。一旦定義,任何對錶的增刪改操作均有伺服器自動啟用相應的觸發器,在dbms核心層進行集中的完整性控制。類似於約束,但比約束更靈活。觸發器的分類 dml觸發器 dml data manipulation language 觸發器是當資料庫伺...