999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

觸發器在程序設計中的應用

2019-09-10 07:22:44李艷杰曹金靜
現代信息科技 2019年4期

李艷杰 曹金靜

摘 要:觸發器在程序設計語言中應用廣泛,特別是在數據庫設計中占有舉足輕重的地位。它具有一觸即發的特點,數據庫中的表通常都是有聯系的,如果一個表中的數據更新,而另一個與它相關聯的表數據不更新,則會使兩個表中的數據不能保持一致,導致數據出現錯誤,而觸發器可以解決這個問題,使所有相關聯的表中的數據保持一致性,本文主要論述觸發器在SQL Server數據庫管理中是如何實現數據一致性的。

關鍵詞:觸發器;程序設計;SQL Server

中圖分類號:TP311.138 文獻標識碼:A 文章編號:2096-4706(2019)04-0030-02

The Application of Trigger in Programming

LI Yanjie,CAO Jinjing

(College of Electronic Information Engineering,Shandong Huayu University of Technology,Dezhou 253034,China)

Abstract:Triggers are widely used in programming languages,especially in database design. It has the characteristics of hair-trigger. The tables in the database are usually related. If the data in one table is updated and the data in the other table is not updated,the data in the two tables will not be consistent,resulting in data errors. Triggers can solve this problem and make the data in all associated tables consistent. This paper mainly discusses how triggers achieve data consistency in SQL Server database management.

Keywords:trigger;program design;SQL Server

0 引 言

在SQL Server數據庫管理中,觸發器是一項非常重要的技術,也是一種特殊的存儲過程,具有一觸即發的特點;它是基于一個表創建的,但是執行時可以操作多個有聯系的表,所以可以對表實施復雜的完整性約束,當與觸發器相關的表中數據發生改變時,觸發器被自動激活,從而防止對數據進行不正確的修改。

1 觸發器的作用

在數據庫中,觸發器能夠實現主鍵和外鍵所不能保證的復雜的參照完整性和數據的一致性。舉例說明:主表為學生表(學號,姓名),主鍵為學號;子表為成績表(學號,成績),外鍵為學號,為兩個表建立完約束之后,則會有如下三條約束:一是子表中存在匹配的記錄,主表中不能刪除此記錄,也不能更改主鍵的值;二是主表中沒有的值,子表中也不能有;三是主表中的記錄可以多于子表。所以,如果學生表刪除(01,王建)這條記錄,數據庫會不允許刪除,因為成績表中存在此學號,但是利用觸發器可以實現兩個表中同時刪除。

2 觸發器的分類

觸發器分兩類:即DML觸發器和DDL觸發器。DML觸發器是當數據庫中發生數據操作語言(DML)事件(即對表中數據進行插入、刪除、更新時)時執行的操作;DDL觸發器是在響應數據定義語言(DDL)事件時執行的操作,DDL觸發器一般用于執行數據庫中的管理任務。例如:對表的創建、修改和刪除,而非表中數據的。下面重點論述DML觸發器。

3 DML觸發器的工作原理

在SQL SERVER里,為每個DML觸發器都定義了兩個特殊的表,一個是插入(INSERTED)表,一個是刪除(DEL ETED)表。這兩個表是存在于數據庫服務器的內存中的,是由系統管理的邏輯表,而不是真正存儲在數據庫中的物理表。INSERTED表對于插入記錄操作來說,INSERTED表里存放的是要插入的數據;對于更新記錄操作來說,INSERTED表里存放的是更新后的記錄。DELETED表對于刪除記錄操作來說,DELETED表里存入的是被刪除的舊記錄;對于更新記錄操作來說,DELETED表里存放的是更新前的記錄。

3.1 DML觸發器的語法結構

DML觸發器的語法結構如下所示:

CREATE TRIGGER 觸發器名稱

ON 表名/視圖名

FOR\AFTER\INSERT OF

UPDATE,INSERT,DELETE

AS

BEGIN

T—SQL 語句

END

3.2 選擇After的應用

其中AFTER(FOR早期版本使用)選項,只能用于基本表,INSTEAD OF選項用于基本表和視圖。當選擇AFTER時,這類觸發器是在記錄已經改變完之后,才會被激活執行,它主要是用于記錄變更后的處理或檢查,一旦發現錯誤,也可以用ROLLBACK TRANSaCTION語句來回滾本次的操作。例:當SQL SERVER接收到一個要執行刪除操作的SQL語句時,SQL SERVER先將要刪除的記錄存放在刪除表里,然后把數據表里的記錄刪除,再激活AFTER觸發器,執行AFTER觸發器里的T—SQL語句。執行完畢之后,刪除內存中的刪除表,退出整個操作。

案例說明:在電子商務數據庫中創建一個DML觸發器,實現在用戶信息表中刪除用戶時,顯示“某某用戶已被刪除”。

CREATE TRIGGERT1

ON USERS \\USERS為表的名稱

AFTER DELETE \\此處選擇DELETE

AS

BEGIN

DECLARE @A VARCHAR(30) \\聲明一個變量

SELECT @A=U_NAMEFROM DELETED

PRINT @A+'用戶已被刪除'

END

代碼完成之后,當刪除USERS表中的一條記錄時,便會顯示此用戶已被刪除的結果。

3.3 選擇INSTEAD OF的應用

一個表中只能建立一個INSTEAD OF觸發器,而AFTER可以建立多個。INSTEAD OF觸發器,是在插入、更新、刪除操作運行之前激活,不再去執行原來的SQL操作,而去運行觸發器本身的SQL語句,而AFTER觸發器,即在記錄被更改或刪除之后才被觸發。

案例說明:創建觸發器,要求不能刪除電子商務數據庫中訂單表中的訂單記錄。

CREATE TRIGGERT2

ON ORDERS

INSTEAD OF DELETE

AS

PRINT '訂單不能被刪除'

當執行語句刪除訂單表中的記錄時,會彈出“訂單不能被刪除”。

4 綜合案例實現

建立兩個表,表一:XUESHENG(XUEHAO CHAR(6), XINGM CHAR(10)),輸入記錄為:(11,WANGLING,(12, LIMING),表二:CHENGJI(XUEHAO CHAR(6),CH EN GJIFLOAT),輸入記錄為:(11,80),(12,60)。

根據兩個表建立觸發器,要求當在CHENGJI表中插入記錄時,如果學號不在XUESHENG表中,則提示信息:此學生不存在,不能插入成績,并加以驗證;當在CHENGJI表中插入(13,90)這條記錄時,提示信息不能插入。

CREATE TRIGGER T3

ONCHENGJI

AFTER INSERT

AS

BEGIN

DECLARE @A CHAR(6)

SELECT @A=XUESHENG.XUEHAO

FROMXUESHENG,INSERTED

WHEREXUESHENG.XUEHAO=INSERTED.XUEHAO

IF @AIS NULL

BEGIN

ROLLBACK TRANSaCTION

PRINT '插入不成功,此學生不存在'

END

END

通過下面的插入語句驗證觸發器的執行:

INSERTINTOCHENGJI VALUES(13,90)

執行此語句時,會提示插入不成功,此學生不存在。因為此學生的學號在XUESHENG表中不存在,說明沒有學生存在,更不會有學生成績,也就不允許插入此記錄,所以通過觸發器可以讓多個表中的數據保持一致。

5 結 論

本文介紹了觸發器的含義、作用、分類、語法結構,以及對DML觸發器語法結構中關鍵字的解釋,并舉例編寫代碼說明觸發器實現的過程,由此可見,對于多個表而言,若想實現程序設計中數據的參照完整性和數據的一致性,必須建立觸發器來解決,并且要注意是在已經建好的表上建立觸發器,還是在數據庫上建立觸發器,級別不同,選擇的關鍵字也不同,實現的功能也不同。

參考文獻:

[1] 劉丹,李楠.SQL Server觸發器探析 [J].信息與電腦(理論版),2015(15):105-106+111.

[2] 邱吉苗,竺東杰,方飛波,等.基于醫囑觸發器技術的藥品不良反應監測研究 [J].中國數字醫學,2016,11(9):56-57.

[3] 張海越,范曦.觸發器在SQL Server數據庫中使用的分析與研究 [J].數字技術與應用,2016(2):77.

[4] 陳雅.SQL Server數據庫中觸發器的應用研究 [J].電腦知識與技術,2017,13(12):1-2+12.

[5] 何勰緋.探析觸發器在大型數據庫中的應用 [J].中國信息化,2018(11):48-49.

作者簡介:李艷杰(1978-),女,漢族,山東德州人,講師,碩士,主要研究方向:數據挖掘技術;曹金靜(1983-),女,漢族,山東德州人,教師,講師,碩士,研究方向:電子信息、軟件開發。

主站蜘蛛池模板: 超碰91免费人妻| 国产久操视频| 91色综合综合热五月激情| 久久综合干| 亚洲黄色网站视频| 成人在线观看不卡| 婷婷伊人久久| 欧美日韩在线成人| 久久一色本道亚洲| 精品国产成人三级在线观看| 天天色天天综合| 国产jizzjizz视频| 伊人色综合久久天天| 中文字幕伦视频| 久久a级片| 欧美成人精品在线| 国产一级毛片在线| 国产一级特黄aa级特黄裸毛片 | 亚洲人成色77777在线观看| 日韩高清成人| 女人一级毛片| 高潮毛片免费观看| AV无码无在线观看免费| 亚洲中文字幕无码mv| 69av免费视频| 中文字幕亚洲乱码熟女1区2区| 亚洲欧洲日韩国产综合在线二区| 国产最新无码专区在线| 亚洲一区二区三区中文字幕5566| 四虎永久在线精品国产免费| 国产精品自在自线免费观看| 国产微拍精品| 亚洲Va中文字幕久久一区| 国产成人精品日本亚洲77美色| 一区二区午夜| 国产精品久久久久久久久| 欧美成人午夜在线全部免费| 嫩草国产在线| 日韩成人午夜| 日韩欧美中文| 日本在线亚洲| 免费人成视网站在线不卡| 欧美日韩国产综合视频在线观看| 美女一级免费毛片| 中文字幕自拍偷拍| 亚洲天堂精品视频| 天天激情综合| 综合五月天网| 成年人视频一区二区| 久久频这里精品99香蕉久网址| 在线观看国产黄色| 99视频在线免费看| 高h视频在线| AV网站中文| 国产精品人人做人人爽人人添| 中国精品久久| 国产又黄又硬又粗| 国产一级片网址| 高清免费毛片| 国产粉嫩粉嫩的18在线播放91| 国产午夜小视频| 亚洲第一黄片大全| 狠狠综合久久| 欧美亚洲综合免费精品高清在线观看| 国产精品高清国产三级囯产AV| 2021无码专区人妻系列日韩| 国产精品999在线| 999精品视频在线| 亚洲精品国产自在现线最新| 自偷自拍三级全三级视频| 国产97视频在线| 亚洲精品国产综合99久久夜夜嗨| 毛片网站在线播放| 日韩性网站| 日韩第九页| 久久永久免费人妻精品| 亚洲动漫h| 久久永久免费人妻精品| 欧美在线视频不卡第一页| 欧美亚洲国产日韩电影在线| 国产午夜小视频| 国产精品内射视频|