SQL觸發器課堂筆記

2021-10-07 02:14:53 字數 2327 閱讀 6946

--建立觸發器

--觸發器 保證資料完整性,與表事件相關的特殊的儲存過程,由事件觸發

--比如當對乙個表進行操作時(alter,delete,update)

delete student

where sno=

'1201011102'

select

*from student

where sno=

'1201011102'

--插入一條新記錄

insert

into student

(sno,sname,s***,entrancetime,classno)

values

('11099'

,'字串'

,'男'

,'2000-01-01'

,'11010111'

)--查詢插入的新記錄

select

*from student

where sno=

'11099'

--如果要真的刪除,需要禁用表裡面的delete_student觸發器

delete student

where sno=

'11099'

alter

trigger

[dbo]

.[update_sname]

on[dbo]

.[student]

forupdate

--instead of update

asif

update

(sname)

begin

print

'不能修改學生的姓名'

rollback

transaction

endelse

ifupdate

(s***)

begin

print

'不能修改學生的性別'

rollback

transaction

--撤銷操作

end--測試**,檢查觸發器功能是否正常

update student

set sname =

'zfc'

where sno=

'1101011101'

update student

set s*** =

'm'where sno=

'1101011101'

select

*from student

where sno=

'1101011101'

--建立乙個觸發器,針對於teacher表,如果有人要修改教師的姓名,就輸出不能修改教師姓名

create

trigger t_updatename

on teacher --對teacher表起作用

forupdate

--觸發條件,insert,delete

asif

update

(tname)

begin

print

'不能修改教師姓名'

rollback

tran

--事物回滾

end--測試**,驗證觸發器是否有效

update teacher

set tname=

'字串'

where tno=

'0101'

select

*from teacher

where tno=

'0101'

--alter

trigger t_insert

on teacher

forinsert

as--兩張特殊的表,inserted ,deleted(隱藏),記錄剛剛插入或者刪除的記錄

declare

@tno

char(4

)--定義的區域性變數用來儲存從系統表中查出的教師的工號

select

@tno

=tno

from inserted

print

@tno

ifleft

(@tno,2

)!='11'

print

'不能插入該記錄'

rollback

tran

--測試觸發器語句

insert

into teacher

(tno,tname,ttitle)

values

('0997'

,'zifuchuan'

,'教授'

)

sql 觸發器 直接遞迴觸發器

create trigger dbo loving20000 on dbo s for delete asdeclare age int select age sage from deleted delete s where sage age delete from s where sname xq...

150801課堂筆記 觸發器(未完)

2015.08.01 memo 觸發器 建立產品表 create table products id number 11 primary key,name varchar2 30 not null,price number 6,2 建立倉庫表 create table store id number...

sql 觸發器 儲存過程 觸發器(3 3)

1 what?什麼是觸發器 trigger 前兩篇介紹了儲存過程,儲存過程可以理解為sql語句集。那麼觸發器就是一種特殊的儲存過程,也就是一群特殊的sql語句集。特殊在哪?從上文得知,儲存過程是依賴名字才被呼叫的。不僅是儲存過程,我們常用的方法等,大部分也是先知道名字,才能去使用。就像吃飯採用訂外賣...