觸發器例項

2021-09-21 22:53:59 字數 2204 閱讀 6152

--建立乙個插入操作的觸發器:當向學生選課表sc中插入一條記錄後,變更在學生表student對應學生的選課門數。 

create

trigger

stu_in  

onsc

---對哪個表或者檢視進行操作

forinsert

--設定觸發條件,也就是在什麼情況下會觸發這個觸發器

asupdate

student  

setscnum = scnum +1  

from

student 

inner

join

sc  

onstudent.sno = sc.sno  

setstatistics

io on

setnocount 

oninsert

into

sc values

('990001'

,'001'

,'99'

)  delete

from

sc where

sno=

'990001'

andcno=

'001'

--建立update觸發器

create

trigger

stu_up  

onstudent  

forupdate

asif 

update

(sno)  

begin

raiserror(

'不能對sno欄位進行更新'

,10,1)  

rollback

transaction

endupdate

student  

setsno=

'990032'

where

sno=

'990001'

--建立delete觸發器

create

trigger

stu_del  

onstudent  

fordelete

asdelete

from

sc  

where

sc.sno in(

select

sno 

from

deleted)  

exec

sp_helptext stu_in

--檢視已經建立好的觸發器的建立語句

create

trigger

com_up  

oncomputer  

instead

ofupdate

--instead of主要用於對檢視進行更新

asif 

update

(sname)

------------------這個sname的值來自於輸入update語句中的set後面的條件值

begin

update

student  

setsname=inserted.sname  

from

student 

inner

join

inserted  

onstudent.sno=inserted.sno  

endelse

begin

update

sc  

setcno=inserted.cno,  

grade=inserted.grade  

from

sc inner

join

inserted  

onsc.sno=inserted.sno  

endupdate

computer  

setgrade=95  

where

sno=

'990028'

update

computer  

setsname=

'王曉曉'

-------------------與if update(sname)中的sname相對應

where

sno=

'990028'

select

* from

computer 

定義

觸發器例項

sql server 觸發器例項 基本語法 幫助裡的語法太長了 create trigger triggername on tablename for insert delete update as 觸發器要執行的操作語句.go注意 觸發器中不允許以下 transact sql 語句 alter d...

mysql條件觸發器例項 mysql觸發器例項一則

例子,例項學習mysql觸發器的用法。一,準備二張測試表 1,測試表1 複製 示例 drop table if exists test create table test id bigint 11 unsigned not null auto increment,name varchar 100 n...

mysql觸發器例項

mysql從5.0開始支援觸發器 語法 create trigger 觸發器名稱 on 表名稱 for each row 觸發器sql語句 注意 在mysql中現在還不支援利用call來呼叫儲存過程 示例 比如有論壇的版塊表和文章表,乙個版塊中有多篇文章,在版塊表中有乙個字段用來記錄版塊下的文章數。...