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

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQLSever中的觸發(fā)器基本語法與作用

2024-08-31 01:03:50
字體:
供稿:網(wǎng)友
觸發(fā)器是一種特殊類型的存儲過程,它不同于之前的我們介紹的存儲過程.觸發(fā)器主要是通過事件進(jìn)行觸發(fā)被自動調(diào)用執(zhí)行的。而存儲過程可以通過存儲過程的名稱被調(diào)用。本文給大家介紹SQLSever中的觸發(fā)器基本語法與作用,感興趣的朋友一起學(xué)習(xí)吧
 

什么是觸發(fā)器?

觸發(fā)器是在對表進(jìn)行插入、更新或刪除操作時自動執(zhí)行的存儲過程。 觸發(fā)器對表進(jìn)行插入、更新、刪除的時候會自動執(zhí)行的特殊存儲過程。觸發(fā)器一般用在check約束更加復(fù)雜的約束上面。觸發(fā)器和普通的存儲過程的區(qū)別是:觸發(fā)器是當(dāng)對某一個表進(jìn)行操作。諸如:update、insert、delete這些操作的時候,系統(tǒng)會自動調(diào)用執(zhí)行該表上對應(yīng)的觸發(fā)器。SQL Server 2005中觸發(fā)器可以分為兩類:DML觸發(fā)器和DDL觸發(fā)器,其中DDL觸發(fā)器它們會影響多種數(shù)據(jù)定義語言語句而激發(fā),這些語句有create、alter、drop語句。

SQL Server為每個觸發(fā)器都創(chuàng)建了兩個專用表﹕Inserted表和Deleted表。

觸發(fā)器通常用于強(qiáng)制業(yè)務(wù)規(guī)則

觸發(fā)器是一種高級約束,可以定義比用CHECK 約束更為復(fù)雜的約束 :可執(zhí)行復(fù)雜的SQL語句(if/while/case)、可引用其它

表中的列

觸發(fā)器定義在特定的表上,與表相關(guān)。

自動觸發(fā)執(zhí)行

不能直接調(diào)用

是一個事務(wù)(可回滾)使用觸發(fā)器的好處觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實現(xiàn)級聯(lián)更改,不過,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強(qiáng)制比用CHECK約束定義的約束更為復(fù)雜的約束。與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個表中的 SELECT 比較插入或更新的數(shù)據(jù),以及執(zhí)行其它操作,如修改數(shù)據(jù)或顯示用戶定義錯誤信息。觸發(fā)器也可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策。一個表中的多個同類觸發(fā)器(INSERT、UPDATE 或 DELETE)允許采取多個不同的對策以響應(yīng)同一個修改語句。

DML觸發(fā)器分為:

1、 after觸發(fā)器(之后觸發(fā))

a、 insert觸發(fā)器

b、 update觸發(fā)器

c、 delete觸發(fā)器

UPDATE 觸發(fā)器創(chuàng)建觸發(fā)的語法

CREATE TRIGGER trigger_nameON table_name[WITH ENCRYPTION]FOR [DELETE, INSERT, UPDATE]AST-SQL語句GO

注意:WITH ENCRYPTION表示加密觸發(fā)器定義的SQL文本 DELETE, INSERT, UPDATE指定觸發(fā)器的類型 insert 觸發(fā)器示例

/*創(chuàng)建insert觸發(fā)器,在上網(wǎng)記錄表recordInfo上創(chuàng)建插入觸發(fā)器*/create trigger tr_insert_recordInfoon recordInfofor insertas/*定義變量,用于臨時存儲插入的會員號、電腦編號和卡的編號*/declare @cardId char()declare @PCId intdeclare @CardNumber char()/*從inserted臨時表中獲取插入的記錄行的信息,包括電腦的編號、卡的編號*/select @PCId=PCId,@cardId=CardId from inserted/*根據(jù)電腦編號修改電腦的使用狀態(tài)*/update PCInfo set PCUse= where PCId=@PCId/*根據(jù)卡的編號查詢會員號*/select @CardNumber=CardNumber from cardinfo where CardId=@cardid/*顯示上機(jī)成功的信息*/print '上機(jī)成功!會員號是:'+@CardNumber+'機(jī)器號是:'+convert(char(),@PCId)go----插入測試數(shù)據(jù),會員號為的上機(jī)set nocount on --不顯示sql語句影響的記錄行數(shù)declare @CardId int ---聲明一個存儲卡的編號的變量---根據(jù)會員號查處卡的編號select @cardId=cardid from cardinfo where cardNumber='c' ---向recordInfo表中插入一條記錄信息,卡的編號、電腦編號和上機(jī)時間insert into recordInfo(cardId,PCId,beginTime) values(@cardId,,getDate())----查看結(jié)果select * from recordInfoselect * from PCInfo

update觸發(fā)器示例

---創(chuàng)建delete觸發(fā)器,在上網(wǎng)記錄表RecordInfo上創(chuàng)建刪除觸發(fā)器create trigger tr_delete_recordInfoon recordInfofor deleteasif exists(select * from sysobjects where name='backRecordInfo')----如果backrecordInfo表存在,就添加記錄即可insert into backRecordInfo select * from deletedelse----創(chuàng)建backRecordInfo表,從deleted中獲取被刪除的數(shù)據(jù)select * into backRecordInfo from deletedprint'backRecordInfo表備份數(shù)據(jù)成功,備份表中的數(shù)據(jù)為:'select * from backRecordInfogo-------關(guān)鍵代碼----------測試delete觸發(fā)器,刪除數(shù)據(jù)set nocount ondelete from recordInfo---查看結(jié)果print'記錄表中的數(shù)據(jù)為:'select * from recordInfo

delete觸發(fā)器示例

-------關(guān)鍵代碼------create trigger tr_update_recordInfoon recordInfofor updateasdeclare @beforePCId intdeclare @afterPCId intselect @beforePCId =PCId from deletedselect @afterPCId=PCID from inserted---根據(jù)電腦編號修改使用狀態(tài)--------根據(jù)以前使用的電腦編號把電腦的使用狀態(tài)改為:update PCInfo set PCUse= where PCId=@beforePCId---根據(jù)現(xiàn)在使用的電腦編號把電腦的使用狀態(tài)改為:update PCInfo set PCUse= where PCId=@afterPCId----顯示電腦換機(jī)成功print'換機(jī)成功!從'+convert(varchar(),@beforePCId)+'號電腦換到'+convert(varchar(),@afterPCId)+'號電腦'go/*測試update觸發(fā)器,修改電腦編號*/--顯示更改前,記錄表中的數(shù)據(jù)print'更改前,記錄表中的數(shù)據(jù)'select * from recordInfo--顯示更改前,電腦表中的數(shù)據(jù)print'更改前,電腦表中的數(shù)據(jù)'select * from PCInfoset nocount on---把電腦號為的改為update recordInfo set PCId= where PCId= ---查看結(jié)果print'更改后,記錄表中的數(shù)據(jù)'select * from recordInfoprint'更改后,電腦表中的數(shù)據(jù)'select * from PCInfo

instead of觸發(fā)器的使用 instead of觸發(fā)器的使用范圍,instead of 觸發(fā)器可以同時在數(shù)據(jù)表和視圖中使用。通常在以下幾種情況下,建議使用instead of觸發(fā)器: 數(shù)據(jù)庫里的數(shù)據(jù)禁止修改:例如電信部門的通話記錄是不能修改的,一旦修改,則通話費用的計數(shù)將不準(zhǔn)確。 有可能要回滾修改的SQL語句 在視圖中使用觸發(fā)器 用自己的方式去修改數(shù)據(jù) instead of觸發(fā)器示例

---創(chuàng)建update觸發(fā)器,在上網(wǎng)記錄表recordInfo上創(chuàng)建修改(列)觸發(fā)器create trigger tr_updateColum1_recordInfoon recordInfoinstead of insertasdeclare @cardbalance int --聲明用于存儲用戶余額的變量declare @CardId int --聲明用于存儲用戶卡的編號的變量declare @PCId int --聲明用于存儲電腦編號的變量---inserted臨時表中獲取插入的記錄行信息,包括電腦編號、卡的編號select @cardId=cardId,@PCId=PCId from insertedselect @cardbalance=cardBalance from cardInfo where CardId=@CardIdprint'您的余額為:'+convert(varchar(10),@cardBalance) ---打印余額信息if(@cardBalance<2) ---判斷余額多少,看能否正常上機(jī)print'余額小于元,不能上機(jī)。請盡快充值!'else----根據(jù)電腦的編號修改電腦的使用狀態(tài)更改為正在使用update PCInfo set PCUse=1 where PCId=@PCId----向recordInfo表插入上機(jī)記錄insert into recordInfo(cardId,PCId,beginTime)values(@CardId,@PCId,getdate())print'上機(jī)成功'-------關(guān)鍵代碼------set nocount ondeclare @cardId int ---聲明一個存儲卡的編號的變量---根據(jù)會員號查出卡的編號select @cardId=cardId from cardInfo where cardNumber='c001'----向recordInfo表中插入一條記錄信息,卡的編號、電腦的編號和上機(jī)時間insert into recordInfo(cardId,PCId,beginTime)values(@cardId,1,getdate())select * from recordInfoselect * from PCInfo

以上所述是小編給大家介紹的SQLSever中的觸發(fā)器基本語法與作用的相關(guān)內(nèi)容,希望對大家有所幫助!



注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
xxxx性欧美黑人| 欧美人与物videos另类xxxxx| 波多野结衣加勒比| 欧美色精品在线视频| 印度美女freesex性hd| 亚洲精品在线网站| 国产suv精品一区二区68| 日本午夜精品理论片a级app发布| 欧美激情综合在线| www.夜夜骑.com| 中文字幕一区二区三区四区视频| 色就是色欧美| av电影在线不卡| 美腿丝袜亚洲一区| 黄色亚洲大片免费在线观看| 日韩亚洲视频在线| 色呦呦网站在线观看| 少妇久久久久久被弄到高潮| 欧美午夜欧美| 日本婷婷久久久久久久久一区二区| 91老师片黄在线观看| 国产经品一区二区| 曰批又黄又爽免费视频| 亚洲欧洲日本一区二区三区| 亚洲精品天堂成人片av在线播放| 日韩精品久久理论片| 午夜精品区一区二区三| 国产福利视频在线| 欧美成人禁片在线观看网址| 国产欧美一区二区三区在线老狼| 97人人模人人爽人人少妇| av在线亚洲男人的天堂| 欧美1o一11sex性hdhd| 亚洲无人区码一码二码三码| 久久午夜精品一区二区| 免费成年网站| 国产精品wwww| 欧美高清不卡在线| 中文字幕在线观看视频www| 97免费视频在线播放| 欧美三级电影网址| 欧美乱偷一区二区三区在线| 精品久久久久久亚洲综合网站| 亚洲乱码一区二区| 九草视频在线观看| 亚洲欧洲av一区二区| 精品视频高清无人区区二区三区| 欧美久久一区二区三区| 在线免费观看日本欧美爱情大片| 搜成人激情视频| 国产综合在线观看| v天堂中文在线| 久久久久久久久久综合| 欧美日韩在线不卡| 奇米在线7777在线精品| 久久er这里只有精品| 国产一二三在线视频| 91老司机福利 在线| 欧美一级欧美一级| 少妇高潮惨叫久久久久| 成人免费在线电影网| 乱中年女人伦av一区二区| 一区二区三区欧美激情| 国产欧美精品一区二区三区-老狼| 中文国产成人精品| 1024在线视频| 97公开免费视频| 亚洲私人黄色宅男| 亚洲精品自拍偷拍| 亚洲婷婷国产精品电影人久久| 亚洲综合免费观看高清完整版在线| 国内精品伊人久久| 极品销魂一区二区三区| 久久精品久久久久久| 麻豆国产91在线播放| 一区二区欧美亚洲| 精品成人av一区| 国产精品入口免费视| 久久精品国产68国产精品亚洲| 欧美黑人性猛交xxx| 久久艹中文字幕| 久久精品在线播放| 翔田千里精品久久一区二| 日韩加勒比系列| 国产野外战在线播放| 69av视频在线观看| 宅男午夜在线| 亚洲乱码中文字幕久久孕妇黑人| 午夜一区二区三区免费| 国产免费一区二区三区最新不卡| 日日摸日日碰夜夜爽无码| 51精品国产黑色丝袜高跟鞋| 国产羞羞视频在线观看| 国产一区二区高清不卡| 91午夜在线| 制服丝袜国产精品| 欧美日韩综合| 最新中文字幕在线观看| 久久天堂av综合合色蜜桃网| 日韩高清不卡一区二区三区| 午夜精品一区二区三区在线视频| 91精品午夜视频| 成人高清免费观看| 国产精品日韩电影| 免费在线观看日韩欧美| 狠狠干一区二区| 日韩综合在线观看| 日本一区高清不卡| 国产在线视频你懂得| 人人爽人人爽人人片av| 给我看免费高清在线观看| 青娱乐免费在线视频| 国产69精品久久久久9| 久久伊人一区二区| 五月天激情开心网| 亚洲AV无码久久精品国产一区| 久久久午夜视频| 亚洲精品欧美二区三区中文字幕| 亚洲一区日韩在线| 久久久久久夜精品精品免费| 91麻豆高清视频| 欧美亚洲在线观看| 免费黄色成年网站| 日本特黄a级高清免费大片| 久久综合伊人77777麻豆最新章节| 波多野结衣家庭教师在线| 亚洲成人在线免费| 国产一区二区在线电影| 97操在线视频| 欧美性jizz18性欧美| 国产大学生校花援交在线播放| 国产原创在线视频| 久久夜色精品国产欧美乱| 欧美 中文字幕| eeuss影院www免费看| 男人天堂久久久| 亚洲国产精品无码久久久| 日韩美女精品在线| а√天堂资源在线| 调教视频vk| 日韩激情在线观看| 国产原创在线| 制服.丝袜.亚洲.另类.中文| 国产一区精品| 国产成人精品一区二区在线小狼| 欧美影院一区二区| 国产精品国产三级国产普通话三级| 黄污视频在线观看| 韩国av一区二区三区四区| 啄木系列成人av电影| 日韩精品欧美大片| 久久av红桃一区二区小说| 最新欧美日韩亚洲| 国产精品日韩三级| 欧美6699在线视频免费| 国产成人精品一区二区三区在线观看| 久久99精品国产自在现线| 最新国产在线视频| 久久精品国产亚洲av香蕉| 欧美亚洲综合视频| 最好看的日本字幕mv视频大全| 成年在线播放小视频| 五月天视频一区| 国产精品你懂的在线观看| 国产一区二区三区在线观看视频| 91精品国产91久久久久久| 欧洲av不卡| 2021久久国产精品不只是精品| 国产成都精品91一区二区三| 精品国产一区久久久| 国产二区国产一区在线观看| 久久99精品久久久久久动态图| 91在线第一页| 99九九久久| 性欧美精品一区二区三区在线播放| 欧美黑人欧美精品刺激| 欧美激情在线有限公司| 欧美大胆a人体大胆做受| 99精品中文字幕| 国产精品成人国产| 毛片av在线播放| 久久综合久久网| 日韩美女视频网站| 中文字幕理论片| 国产精品久久免费视频| 久久久精彩视频| 亚洲人成网站精品片在线观看| 在线观看国产免费视频| 丝袜情趣国产精品| 隔壁老王国产在线精品| 成人无码精品1区2区3区免费看| 大桥未久av一区二区三区中文| 国产二级片在线| 欧美18xxxxx| 男人操女人视频网站| 亚洲产国偷v产偷v自拍涩爱| 免费成人你懂的| 国产大学生自拍| 亚洲一区二区成人在线观看| 婷婷精品在线| 国产精品资源在线观看| 国产又粗又长又硬| 在线不卡a资源高清| 极品白嫩少妇无套内谢| 男女裸体影院高潮| 久久97人妻无码一区二区三区| 欧美日韩精品区别| a在线观看视频| 日韩精品免费视频| 亚洲精品中文在线影院| 少妇精品视频一区二区免费看| 91精品国产综合久久婷婷香蕉| 免费高清在线一区| 欧美日韩亚洲免费| 日本精品一二三区| 精东传媒在线观看| 狠狠色狠狠色综合人人| 国产精品蜜月aⅴ在线| 亚洲综合一区二区三区| 国产精品久久久久久久久动漫| 亚洲高清123| 中文字幕精品无码一区二区| 伊人狠狠色j香婷婷综合| 欧美一区日本一区韩国一区| 99久久精品无码一区二区毛片| 亚洲欧美综合色| 一级毛片美女欧洲| 黄色永久免费网站| 久久久亚洲一区| 天天摸日日摸狠狠添| 国内精品视频一区二区三区八戒| 台湾色综合娱乐中文网| 国产午夜精品一区二区三区嫩草| 鲁大师影院一区二区三区| 99热在线观看免费| 国产天堂第一区| 快播日韩欧美| 中文字幕第24页| 日韩中文字幕久久| 午夜理伦三级做爰电影| 黄网站app在线观看下载视频大全官网| 欧美成人精品一区二区男人看| 性感美女视频一二三| 欧美国产中文高清| 久久99影视| 免费三级毛片| 亚洲国产成人一区二区| 三上悠亚免费在线观看| 久久综合久久美利坚合众国| 99热精品国产| 国产精品久久AV无码| 亚洲欧美国产不卡| 99riav久久精品riav| 久久精品国产大片免费观看| 亚洲国产婷婷综合在线精品| 久久成人小视频| 日韩成人免费在线观看| 黄色三级电影网| 91吃瓜网在线观看| 欧美在线高清视频| 久久久久久久久久久成人| 成人免费视频毛片| 国产精品伊人色| 青椒成人免费视频| 在线亚洲伦理| 久久成人18免费网站| 国模私拍视频在线观看| 中国a一片一级一片| 日本aⅴ大伊香蕉精品视频| 久久久免费观看| 日本午夜一区| 国产三级按摩推拿按摩| 奇米视频7777| 不卡大黄网站免费看| 黄色18在线观看| 中文字幕一区二区三区四区免费看| 欧美色欧美亚洲另类二区| 国产精久久一区二区三区| 麻豆免费版在线观看| 久久久久久无码午夜精品直播| 成人影视亚洲图片在线| 未满十八勿进黄网站一区不卡| 国产精品一久久香蕉国产线看观看| 91亚洲精品久久久蜜桃| 四虎一区二区三区| 欧美色图色综合| av动漫免费观看| 一区二区欧美亚洲| 精东粉嫩av免费一区二区三区| 日韩电影免费观看中文字幕| 黄色在线观看av| 蜜臀91精品国产高清在线观看| 中文字幕日韩一区二区| 一区二区三区午夜探花| 毛片av一区二区三区| 成年人av网站| 欧美xxxx黑人又粗又长精品| 国产高清在线免费| 黄a免费视频| 青草影视电视剧免费播放在线观看| 国产精品久久久久aaaa樱花| 亚洲国产精彩中文乱码av| 男女羞羞在线观看| 中文字幕在线亚洲精品| av在线女优影院| 无码国精品一区二区免费蜜桃| 九九热在线免费观看| 爽成人777777婷婷| 色呦呦中文字幕| 99精品一区二区| 欧美最猛性xxxx高清| www.久久久久久| 国产欧美一区二区视频| 久久久久久综合网| 国产激情在线看| 成人激情综合| 免费在线观看的电影网站| 成人18视频在线观看| 5566中文字幕一区二区| 成人做爰视频www网站小优视频| 在线观看亚洲专区| 国产成人精品免高潮费视频| 国精产品一区二区三区有限公司| 精品无码久久久久国产| 麻豆国产尤物av尤物在线观看| av在线播放一区| 尤物av一区二区| 亚洲一区二区美女|