日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库中触发器、事务

發布時間:2024/4/15 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库中触发器、事务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

觸發器

步驟:打開選用的‘數據庫’,然后打開‘可編程性’,就可以找到‘數據庫觸發器’。

是一種存儲過程,只是不通過? exec 調用執行!

通過增刪改語句來引發執行!

在有主外鍵關聯時,可以把關聯的信息都修改

(有主外鍵關聯時,要先刪除外鍵才可以刪主鍵)

create table new

(code int ,

shu? int)

go

insert into new values (1,1)

insert into new values (2,3)

insert into new values (3,4)

insert into new values (4,5)

insert into new values (5,6)

select *from new

drop table new

----------------------------------------------------

create trigger TR_new_Delete? --創建并命名觸發器

on new --作用于new

for delete--delete/insert/update?? --先執行刪除語句,再進行插入語句

as

? insert into new values (11,11)--占據刪除數據的位置

?? insert into new values (3,4)--在新插入數據的位置

go到此,觸發器完成。

?

?delete from new where code=3

--引發觸發器語句,只能是增刪改

?select *from new

for/after? 先運行go再運行as

?--先go刪除了code=3,再as添加了code=11,code=3

-- drop trigger TR_new_Delete

?--------------------------------------------------

create trigger TR_new_Delete

on new

instead of delete?

as

? insert into new values (11,11)

go

??delete from new where code=2

select * from new?

--此時不執行刪除語句,只執行插入語句!

instead of只運行as的語句

?

?

----------------------------------------------

alter? trigger dongtaichufa

on teacher

instead of delete

as

? begin

??? declare @Tno varchar(20)

set @Tno=(select Tno from deleted)

--deleted 表示虛擬表(go后面的delete 語句)

??? update teacher set Tname='遞歸'where Tno=@Tno

? end

go

? delete? from teacher where Tno='856'

select *from teacher

---------------------------------------------

--觸發器可以處理視圖,(用途:1.刪除數據時備份2.操作視圖,即有主外鍵關聯時)

create? trigger inserttt

on teacher

for? insert

as

?declare @Tno varchar(19)

?set @Tno=(select Tno from inserted)

?update teacher set Tsex=''where Tno=@Tno? --修改表內容

go

insert into teacher values

('789','集合','女','1990-09-09','教授','生物系')

select *from teacher

----------------------------------------------

alter table teacher disable trigger all--(或觸發器名字)禁用全部

alter table teacher enable? trigger all--(或觸發器名字)啟用全部

?

#########################

?

事物:

就是把語句打包執行,只要發生錯誤,全部執行失敗!

begin tran???? --開始‘事務’

--一般對增刪改使用事物!查詢一般不用事物

insert into student values ('910','王五','男','1999-09-09','95033')

if @@ERROR >0--一旦發生錯誤,執行下面的返回!

goto TranRollback

insert into course values ('3-999','語文','804')

if @@ERROR >0

goto TranRollback

insert into? score? values ('191','3-105',99)

?

?if @@ERROR >0

? begin

?? TranRollback:? rollback tran --返回tran 開始!

? end

?else

? begin

?? commit tran--確認提交tran 執行語句內容!

? end

?

轉載于:https://www.cnblogs.com/huaze/p/4089873.html

總結

以上是生活随笔為你收集整理的数据库中触发器、事务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。