亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

15、SQL Server 觸發器

2024-08-31 00:54:03
字體:
來源:轉載
供稿:網友
15、SQL Server 觸發器

SQLServer觸發器

觸發器是一種特殊的存儲過程,只有當試圖用數據操作語言DML來修改數據時才會觸發,DML包含對視圖和表的增、刪、改。

觸發器分為DML觸發器和DDL觸發器,其中DML觸發器會對數據表,視圖進行insert、update、delete的時候觸發。DDL則是create、alter、drop等時觸發。

DML觸發器又分為after(之后觸發)和insert of(之前觸發)觸發器。

如果在創建觸發器的時候不指定類型,則默認是after觸發器。

觸發器有兩個虛擬的臨時表:插入表(inserted)和刪除表(deleted),由系統在內存中創建,不會保存到數據庫。并且兩張表都是只讀的。當觸發器完成工作后,這兩張表會自動刪除。

增加:inserted表 記錄

刪除:deleted表 記錄

修改:inserted表記錄修改前 deleted表記錄修改后

修改數據時現刪掉該記錄,然后再增加一天新的記錄。這樣inserted和updated就都存在記錄了。

觸發器本身就是一個事務,可以利用事務的回滾,撤銷操作。事務就是要么都執行,要么一條都不執行。

創建觸發器

語法:

create trigger [shema_name . ] trg_nameon { table | view }[ with encryption ]{ for | after | instead of }{ insert , update , delete }assql_statement

創建insert觸發器

if(object_id('tgr_test_insert','tr') is not null)    drop trigger tgr_test_insert --刪除觸發器gocreate trigger tgr_test_inserton student --創建在student表    for insert --insert觸發asdeclare @id int,@name varchar(20),@sex char(2),@age int--查詢inserted表中已經插入的信息select @id = id,@name = name,@sex = sex, @age = age from inserted--用查到的信息加入到會員表中if(@age >30) --如果年齡不符合 則修改begin    update student set age = 30 where id = @id    PRint '年齡太大,已自動修改為30'endinsert into [user] (userName,passWord,RoleId) values (@name,@sex + cast(@age as varchar),3)print '添加學生成功!';print '添加會員成功!'

對student表創建觸發器后對該表執行insert后

insert into student (name,sex,age,mail) values ('海盜船長','男',88,'853020304@QQ.com')

查看運行結果

創建update觸發器

if(object_id('tgr_student_update','tr') is not null)    drop trigger tgr_student_updategocreate trigger tgr_student_updateon student    for updateas    declare @oldName varchar(10),@newName varchar(10)    select @oldName = name from deleted; --查找更新前的數據    select @newName = name from inserted;--查找更新后的數據    if(@oldName = @newName)    begin        print '數據相同'        rollback tran;   --回滾 不執行修改操作    end    else        print '修改成功'
update student set name='海盜船長' 

事務在觸發器中結束。批處理已中止。

update student set name='粉紅娘娘'

修改成功

創建delete觸發器

if(object_id('tgr_student_delete','tr')is not null)    drop trigger tgr_student_deletegocreate trigger tgr_student_deleteon student    for deleteas    if(exists(select * from sys.databases where name = 'studentBackup'))        insert into studentBackup select name,sex,age,mail from deleted;    else        print '不存在,創建再插入'        create table studentBackup        (            name varchar(20),            sex char(2),            age int,            mail varchar(20)        )        insert into studentBackup select name,sex,age,mail from deleted;
delete from studentselect * from studentselect * from studentBackup

創建instead of觸發器

if(object_id('tgr_student_inteadof','tr') is not null)    drop trigger tgr_student_inteadofgocreate trigger tgr_student_inteadofon student    instead of delete -- update , insertas    declare @id int,@name varchar(20)    select @id = id,@name = name from deleted;    --instead of 先觸發    --先刪除user表信息    delete from [user] where userName = @name;    --再刪除student表信息    delete from [student] where id = @id;delete from student where name = '海盜船長'

修改觸發器

alter trigger tgr_test_inserton studentfor insertasprint 'ok'

禁用觸發器

disable trigger tgr_test_insert on student

啟用觸發器

enable trigger tgr_test_insert on student

查詢已創建的觸發器

select * from sys.triggers


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕不卡在线视频极品| 色午夜这里只有精品| 国产成人高潮免费观看精品| 亚洲国产高清高潮精品美女| 国产97色在线|日韩| 久久久久久免费精品| 九九热精品在线| 久久精品电影一区二区| 庆余年2免费日韩剧观看大牛| 亚洲综合在线小说| 欧美性开放视频| 欧美日韩免费区域视频在线观看| 亚洲免费小视频| 亚洲91av视频| 国产欧洲精品视频| 欧美日韩中国免费专区在线看| 国产日韩欧美一二三区| 国产精品免费视频xxxx| 国内精品400部情侣激情| 伊人精品在线观看| 一区二区欧美久久| 97视频在线观看视频免费视频| 91国产一区在线| 国产成人短视频| 一本色道久久综合狠狠躁篇怎么玩| 日韩欧美中文字幕在线播放| 97视频网站入口| 国产日韩欧美综合| 色青青草原桃花久久综合| 欧美激情影音先锋| 色视频www在线播放国产成人| 精品国内亚洲在观看18黄| 欧美日韩美女在线| 国产精品丝袜白浆摸在线| 亚洲精品99久久久久| 国产日韩欧美视频| 狠狠躁18三区二区一区| 狠狠久久五月精品中文字幕| 91精品久久久久久久久久| 日本亚洲欧美成人| 亚洲精品国产精品国产自| 91精品久久久久久久久中文字幕| 日韩福利伦理影院免费| 亚洲最大成人网色| 欧美精品成人91久久久久久久| 欧美—级a级欧美特级ar全黄| 国产亚洲欧美另类中文| 久久久爽爽爽美女图片| 亚洲iv一区二区三区| 在线观看欧美视频| 精品国产一区二区三区四区在线观看| 欧美另类在线播放| 国产精品久久久久久久一区探花| 98视频在线噜噜噜国产| 亚洲少妇中文在线| 亚洲精品国产美女| 国产999精品久久久| 国产成人欧美在线观看| 日韩欧美国产成人| 国模极品一区二区三区| 久久精品在线视频| 亚洲偷欧美偷国内偷| 欧美成人性生活| 亚洲一区二区三区成人在线视频精品| 亚洲精品成人免费| 久久久成人精品视频| 人九九综合九九宗合| 成人国产精品日本在线| 欧美另类极品videosbest最新版本| 丁香五六月婷婷久久激情| 亚洲精品免费一区二区三区| 2019中文字幕在线| 中文字幕精品久久久久| 日韩av一区在线| 98精品国产自产在线观看| 国产亚洲精品美女久久久久| 色婷婷av一区二区三区在线观看| 日韩美女主播视频| 欧美日韩午夜视频在线观看| 96pao国产成视频永久免费| 国产精品一区二区av影院萌芽| 97热在线精品视频在线观看| 欧美精品久久久久| 久久99久久99精品免观看粉嫩| 2019av中文字幕| 亚洲精品成人久久电影| 国产日韩欧美视频在线| 国产一区二区美女视频| 97视频在线观看免费高清完整版在线观看| 国产日韩在线观看av| 国产精品香蕉在线观看| 久久久99久久精品女同性| 亚洲美女性生活视频| 亚洲区bt下载| 日韩电影在线观看免费| 色偷偷av亚洲男人的天堂| 欧美区在线播放| 国产精品日韩一区| 欧美电影免费观看大全| 亚洲黄在线观看| 亚洲国产精品久久久久秋霞不卡| 久久国产精彩视频| 日韩午夜在线视频| 中文国产亚洲喷潮| 秋霞av国产精品一区| 国产精品国产三级国产aⅴ9色| 一区二区欧美久久| 欧美亚洲免费电影| 国产成人亚洲综合91| 国产剧情日韩欧美| 色偷偷9999www| 久久99久久亚洲国产| 亚洲国产高潮在线观看| 色老头一区二区三区| 亚洲三级免费看| 欧美性xxxxxx| 中文字幕久久久av一区| 欧美电影免费观看网站| 欧美日本高清一区| 国产精品福利网| 国产成人精彩在线视频九色| 国产精品人人做人人爽| 亚洲无av在线中文字幕| 91av福利视频| 久久人人爽人人爽人人片av高请| 日韩欧美国产一区二区| 久久久精品一区二区| 欧美与欧洲交xxxx免费观看| 国产一级揄自揄精品视频| 91精品久久久久久久久久久久久| 日韩精品视频免费在线观看| 国产精品麻豆va在线播放| 成人黄色在线免费| 欧美大片第1页| 精品亚洲男同gayvideo网站| xxxx性欧美| 亚洲第一区中文99精品| 国产一级揄自揄精品视频| 岛国av午夜精品| 成人黄色片在线| 国产精品jvid在线观看蜜臀| 久久在线观看视频| 精品毛片三在线观看| 久久久成人精品| 亚洲一区二区国产| 最新国产成人av网站网址麻豆| 国产精品吊钟奶在线| 色婷婷亚洲mv天堂mv在影片| 琪琪第一精品导航| 国产欧美日韩丝袜精品一区| 欧美激情在线狂野欧美精品| 国产成人小视频在线观看| 国产精品丝袜白浆摸在线| 亚洲国内高清视频| 欧美巨乳在线观看| 亚洲天堂网在线观看| 欧美大片免费看| 日韩欧亚中文在线| 国产精品美女主播| 国产精品影片在线观看| 久久精品成人动漫| 国产精品久久久999| 亚洲伊人第一页| 国产精品91在线|