T SQL資料庫 建立觸發器

2021-06-07 11:27:44 字數 1430 閱讀 2602

--觸發器

create trigger islateradvance

on dbo.staffrecord

after insert

asbegin

declare @timemorning time(0)='08:00:00';

declare @timeafternoon time(0)='18:00:00';

declare @afternoon time(0);

declare @morning time(0);

set @morning= (select rstartwork from inserted);

set @afternoon= (select rendwork from inserted);

if @morning>@timemorning

update dbo.staffrecord set rislater=1;

if @afternoon<@timeafternoon

update dbo.staffrecord set risinadvance=1;

endgocreate trigger departcount --注意修改snum的初始值為0部門人數觸發器

on dbo.staffinfo

after insert

as begin

declare @depart varchar(20);

declare @num int;--使用者讀取部門人數

set @depart = (select ssdept from inserted);

set @num =(select snum from dbo.department where sdept=@depart);

set @num= (select(@num+1));

update dbo.department set snum=@num;

endgo

create trigger departcountdelte --注意修改snum的初始值為0部門人數觸發器

on dbo.staffinfo

after delete

as begin

declare @depart varchar(20);

declare @num int;--使用者讀取部門人數

set @depart = (select ssdept from deleted);--如果這裡變成了insert,那麼@num會一直為null

set @num =(select snum from dbo.department where sdept=@depart);

set @num= (select(@num-1));

update dbo.department set snum=@num;

endgo

資料庫系列之T SQL(觸發器)

觸發器是一種特殊的儲存過程,只能由事件驅動呼叫,而無法直接呼叫。當對資料庫的相關物件 資料庫 表 檢視 進行某些特定的操作時,資料庫會自動呼叫相應的觸發器。無需再執行增刪改或儲存過程的操作,讓程式更自動化。3.1 觸發器的觸發方式 sql server 按觸發器被啟用的時機可分為後觸發和替代觸發兩種...

T SQL語句建立觸發器

create trigger 觸發器名 on 表或檢視 for after instead of 操作時機 insert,update,delete assql語句 例1 要求 在order test表建立insert觸發器,當向order test表插入一行,如果cust test表中對應 記錄s...

資料庫觸發器

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