成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

使用SQL語句創建觸發器的實例

瀏覽:5日期:2023-09-28 21:00:59
目錄前言一、觸發器的介紹1.1 觸發器 的概念以及定義:1.2 、 觸發器 的作用二、 觸發器 的種類三、使用SQL語句創建觸發器實例1.創建after融發器2.創建instead of觸發器

前言一、觸發器的介紹1.1 觸發器 的概念以及定義:

觸發器 是一種特殊類型的存儲過程,它不同于我們前面介紹過的存儲過程。存儲過程可以通過語句直接調用,而 觸發器主要是通過事件進行觸發而被執行的.例如當對某一表進行諸如UPDATE(修改)、INSERT(插入)、DELETE(刪除)這些操作時,SQL Server 就會自動執行觸發器所定義的SQL語句,從而確保對數據之間的相互關系,實時更新.

1.2 、 觸發器 的作用

觸發器的主要作用就是其能夠實現由 主鍵 和 外鍵 所不能保證的復雜的參照完整性和數據的一致性。除此之外, 觸發器 還有其它許多不同的功能:

①、復雜的約束條件觸發器 能夠實現比CHECK 語句更為復雜的約束。

②、保證數據的安全

觸發器 因為 觸發器是在對數據庫進行相應的操作而自動被觸發的SQL語句可以通過數據庫內的操作從而不允許數據庫中未經許可的指定更新和變化。

③.級聯式

觸發器 可以根據數據庫內的操作,并自動地級聯影響整個數據庫的各項內容。例如:對A表進行操作時,導致A表上的 觸發器被觸發,A中的 觸發器中包含有對B表的數據操作(UPDATE(修改)、INSERT(插入)、DELETE(刪除)),而該操作又導致B表上 觸發器被觸發。

④.調用存儲過程

為了響應數據庫更新, 觸發器 可以調用一個或多個存儲過程.

但是,總體而言, 觸發器性能通常比較低。

二、 觸發器 的種類

SQL Server 中一般支持以下兩種類型的觸發器:

AFTER 觸發器

  AFTER 觸發器 要求只有執行某一操作(INSERT、UPDATE、DELETE)之后, 觸發器 才被觸發,且只能在表上定義。可以為針對表的同一操作定義多個 觸發器 。2. INSTEAD OF 觸發器 。

  INSTEAD OF 觸發器 表示并不執行其所定義的操作(INSERT、UPDATE、DELETE),而僅是執行 觸發器 本身。既可在表上定義INSTEAD OF 觸發器 ,也可以在視圖上定義INSTEAD OF 觸發器 ,但對同一操作只能定義一個INSTEAD OF 觸發器 。

三、使用SQL語句創建觸發器實例1.創建after融發器

(1)創建一個在插入時觸發的觸發器sc_insert,當向sc表插入數據時,須確保插入的學號已在student表中存在,并且還須確保插入的課程號在Course表中存在﹔若不存在,則給出相應的提示信息,并取消插入操作,提示信息要求指明插入信息是學號不滿足條件還是課程號不滿足條件(注:Student表與sc表的外鍵約束要先取消)。

語句實現:

create trigger sc_inserton scafter insertasif not exists (select * from student,insertedwhere student.sno=inserted.sno)beginprint '插入信息的學號不在學生表中! 'if not exists (select * from course,inserted wherecourse.cno=inserted. cno)print '插入信息的課程號不在課程表中!'rollbackend elsebeginif not exists (select * from course,inserted whereCourse.cno=inserted.cno)beginprint '插入信息的課程號不在課程表中! 'rollbackendend

執行:

insert into scvalues ( '20110112','001','78')

刪除外鍵約束;

alter table scdrop constraint FK_sc__sno__332C9D34

(2)為Course表創建一個觸發器Course_del,當刪除了Course表中的一條課程信息時,同時將表sc表中相應的學生選課記錄刪除掉。

create trigger course_delon courseafter deleteasif exists(select * from sc, deletedwhere sc.cno=deleted.cno)begindelete from scwhere sc.cno in (select cno from deleted)enddelete from Coursewhere Cno='003'

select * from sc

(3)在Course表中添加一個平均成績avg_Grade字段(記錄每門課程的平均成績),創建一個觸發器Grade_modify,當sc表中的某學生的成績發生變化時,則Course表中的平均成績也能及時相應的發生改變。

向Course表中添加一個平均成績avg_Grade字段

alter table Courseadd avg_Grade smallint

向avg_Grade中添加數據

update courseset avg_Grade= (select AVG(Grade) from scwhere sc.Cno=Course.Cno)

查看Course表:

select *from Course

創建Grade_modify觸發器

create trigger Grade_modifyon scafter updateasif update(grade)beginupdate courseset avg_grade=(select avg (grade)from sc where course.cno=sc.cnogroup by cno)endupdate scset Grade='90 'where sno='20050001' and cno='001'2.創建instead of觸發器

(1)創建一視圖Student_view,包含學號、姓名、課程號、課程名、成績等屬性,在Student_view上創建一個觸發器Grade_moidfy,當對Student_view中的學生的成績進行修改時,實際修改的是sc中的相應記錄。

創建視圖:

create view student_viewasselect s.Sno,Sname , c.Cno , Cname , Gradefrom student s , course c, scwhere s.Sno=sc.sno and c.Cno=sc.cno

創建觸發器:

create trigger Grade_moidfy on student_viewinstead of updateasif UPDATE (Grade)beginupdate scset Grade= (select Grade from inserted) whereSno= (select sno from inserted) and Cno= (select Cno from inserted)Endupdate student_viewset Grade=40where Sno='20110001'and Cno='002'

測試修改數據:

select *from student_view

(2)在sc表中插入一個getcredit字段(記錄某學生,所選課程所獲學分的情況),創建一個觸發器ins_credit,當更改(注:含插入時)sc表中的學生成績時,如果新成績大于等于60分,則該生可獲得這門課的學分,且該學分須與Course表中的值一致﹔如果新成績小于60分,則該生未能獲得學分,修改值為0。

添加新字段getcredit :

alter table scadd getcredit smallint

創建觸發器:

create trigger sc_upon scafter insert,updateasdeclare @xf int,@kch char(3),@xh char(8),@fs intselect @fs=grade,@kch=cno,@xh=sno from insertedif @fs>=60update sc set @xf=(select credit from course wheresc.Cno=course.cno) where sno=@xh and cno=@kchelseupdate sc set @xf=0 where sno=@xh and cno=@kch修改數據:update scset Grade='90'where Sno='20050001' and cno='001'

以上就是對觸發器的基本認識了,希望對大家有所幫助.

到此這篇關于使用SQL語句創建觸發器的實例的文章就介紹到這了,更多相關SQL創建觸發器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MsSQL 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日本一区二区不卡视频| 黄色资源网久久资源365| 亚洲高清在线精品| 欧美精品啪啪| 欧美日韩一区高清| 五月综合激情日本mⅴ| 亚洲作爱视频| 亚洲精品视频在线观看免费 | 1区2区3区国产精品| 97精品国产97久久久久久久久久久久 | 日韩一区二区视频在线观看| 久久国产精品99精品国产 | 欧美成人一区二区在线 | 亚洲国产日韩综合久久精品| 一区在线免费| 国产精品久久久久影院色老大| 91视频国产资源| 亚洲精品一区二区三区福利| www.日韩精品| 国产丝袜欧美中文另类| 欧美连裤袜在线视频| 欧美激情在线观看视频免费| 国产一区在线免费观看| 国产欧美视频一区二区三区| 99精品视频在线免费观看| 精品国产成人在线影院| 成人精品亚洲人成在线| 久久先锋资源网| 欧美高清视频一区| 国产精品色一区二区三区| 1024日韩| 亚洲电影第三页| 久久这里有精品15一区二区三区| 日韩精品乱码av一区二区| 91福利视频久久久久| 精品无码三级在线观看视频| 91精品国产欧美一区二区18| 成人午夜精品在线| 欧美va亚洲va国产综合| 欧美黄色免费| 18涩涩午夜精品.www| 国产伦精品一区二区三| 日本伊人色综合网| 欧美日韩dvd在线观看| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 激情综合一区二区三区| 91麻豆精品国产91久久久资源速度| 国产老女人精品毛片久久| 欧美成人bangbros| 国产精品二区在线观看| 亚洲精品一二三| 欧美亚洲免费在线| 久久99精品久久久久久久久久久久 | 91尤物视频在线观看| 国产精品久久久久国产精品日日 | 亚洲九九精品| 一区二区三区不卡视频在线观看 | 国产精品永久| 久久99精品久久久久久| 欧美xxxx老人做受| 国产精品草草| 婷婷六月综合网| 制服丝袜中文字幕亚洲| 欧美一区二区| 亚洲视频综合在线| 在线观看日韩精品| 不卡视频一二三四| 亚洲精品视频一区| 欧美在线你懂得| 色综合欧美在线| 亚洲美女屁股眼交3| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产iv一区二区三区| 亚洲欧洲精品一区二区精品久久久 | gogogo免费视频观看亚洲一| 亚洲欧美色综合| 欧美日韩精品系列| 色综合网站在线| 亚洲一区在线视频| 欧美日韩亚洲丝袜制服| 欧美一区免费视频| 午夜成人免费视频| 日韩情涩欧美日韩视频| 99成人精品| 国产一区二区电影| 国产精品日日摸夜夜摸av| 色欧美88888久久久久久影院| 高清不卡一二三区| 亚洲精品国产第一综合99久久| 欧美日韩精品一区二区三区| 韩日午夜在线资源一区二区| 美女任你摸久久| 国产精品无遮挡| 欧美午夜片在线观看| 国产精品久久7| 麻豆国产欧美日韩综合精品二区| 久久久99久久| 色偷偷久久人人79超碰人人澡 | 成人a级免费电影| 亚洲一区二区三区视频在线播放 | 媚黑女一区二区| av在线免费不卡| 日本美女视频一区二区| 欧美国产丝袜视频| 欧美三区在线视频| 亚洲精品一区二区三| 国产91综合网| 亚洲成av人片在线观看无码| 欧美精品一区二区三区蜜桃| 久久久噜噜噜久久狠狠50岁| 欧美午夜一区| 国产伦理精品不卡| 亚洲成人综合视频| 欧美国产日韩精品免费观看| 欧美日韩一区二区三区免费看| 最近看过的日韩成人| 成人免费三级在线| 日韩av电影一区| 亚洲日本va在线观看| 精品国产免费人成在线观看| 欧美婷婷六月丁香综合色| 18成人免费观看视频| 国产**成人网毛片九色| 日韩电影免费在线| 亚洲视频一区二区在线观看| 精品国产一区二区三区久久久蜜月 | 秋霞国产午夜精品免费视频| 中文幕一区二区三区久久蜜桃| 欧美精品第一页| 性欧美暴力猛交另类hd| 91美女在线观看| 国产一区啦啦啦在线观看| 亚洲妇女屁股眼交7| 中文字幕制服丝袜成人av| 精品对白一区国产伦| 欧美日韩午夜精品| 久久国产精品高清| 亚洲黄色av| 午夜亚洲福利| av一区二区三区四区| 精品在线视频一区| 视频一区二区三区在线| 亚洲免费av观看| 国产女同性恋一区二区| 精品国精品国产| 欧美精品日韩一区| 在线精品视频小说1| 亚洲专区一区二区三区| 亚洲国产专区校园欧美| 好看的av在线不卡观看| 欧美暴力喷水在线| 99久久精品免费看国产免费软件| 国产一区不卡视频| 久久精品99国产精品日本| 手机精品视频在线观看| 亚洲影院理伦片| 亚洲欧美一区二区久久| 国产精品久久久久久久久免费桃花 | 中文字幕在线一区二区三区| 精品少妇一区二区三区视频免付费| 欧美性色综合网| 色狠狠色狠狠综合| 久久久国产精品一区二区中文| 国产亚洲成人一区| 9国产精品视频| 亚洲国产高清一区二区三区| 欧美三级特黄| 欧美三级免费| 欧美午夜免费| 国产精品v一区二区三区| 欧美精品国产一区二区| 欧美在线播放| 欧美日韩综合| 欧美日韩国产亚洲一区| 欧美日韩在线播放一区二区| 国产在线日韩| 国内精品国语自产拍在线观看| 午夜久久久久| 激情综合自拍| 99精品99| 国产一区二区三区久久久久久久久| 亚洲乱码久久| 国产精品夜夜夜一区二区三区尤| 国产精品日韩欧美一区二区| 一区二区黄色| 亚洲一区综合| 久久久久久夜| 欧美午夜精品久久久久久超碰 | 欧美日韩dvd在线观看| 欧美另类变人与禽xxxxx| 在线成人av网站| 日韩欧美亚洲另类制服综合在线 | 久久久久久亚洲精品不卡4k岛国| 一本色道综合亚洲| 欧美三级蜜桃2在线观看| 91精品国产麻豆| 精品1区2区在线观看| 欧美国产日韩精品免费观看| 亚洲精选一二三| 三级久久三级久久久|