国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

SQL Server觸發(fā)器在數(shù)據(jù)庫(kù)綜合性實(shí)驗(yàn)中的應(yīng)用

2012-04-29 13:17:14董少云李蘋毛偉高江濤張?jiān)骑w
電腦知識(shí)與技術(shù) 2012年16期
關(guān)鍵詞:綜合性實(shí)驗(yàn)觸發(fā)器

董少云 李蘋 毛偉 高江濤 張?jiān)骑w

摘要:以“學(xué)生成績(jī)管理系統(tǒng)”為例,闡述了SQL Server觸發(fā)器在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí),保證數(shù)據(jù)參照完整性及級(jí)聯(lián)操作方面的應(yīng)用。

關(guān)鍵詞:SQL Server;觸發(fā)器;綜合性實(shí)驗(yàn)

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)16-3773-02

Applications of SQL Server Triggers on the Comprehensive Experiment of the Database

DONG Shao-yun , LI Ping, MAO Wei, GAO Jiang-tao, ZHANG Yun-fei

(College of Computer Science & Engineering,Qujing Normal University,Qujing 655011,China)

Abstract: Taking the case of“management system of students achievement”,describes the applications of the SQL Serve triggers in the de velopment of database application systems to ensure that referential integrity and cascade operation in the application.

Key words: SQL Server; trigger; comprehensive experiment

觸發(fā)器是用戶定義在表上的一類特殊的存儲(chǔ)過(guò)程,它是開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的重要技術(shù)。觸發(fā)器常常用于數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的強(qiáng)制業(yè)務(wù)規(guī)則和數(shù)據(jù)完整性方面,可以通過(guò)級(jí)聯(lián)的方式對(duì)相關(guān)的表進(jìn)行修改。[1]當(dāng)在數(shù)據(jù)庫(kù)的表上發(fā)生數(shù)據(jù)插入或更新操作時(shí),SQL Server將自動(dòng)執(zhí)行觸發(fā)器,保證表中數(shù)據(jù)的參照完整性約束。

1觸發(fā)器的功能及原理

觸發(fā)器在保證數(shù)據(jù)完整性方面具有如下功能:

1)可以禁止違反數(shù)據(jù)完整性的插入和更新。

2)可以通過(guò)級(jí)聯(lián)方式對(duì)相關(guān)表進(jìn)行更新,更新被參照表時(shí)會(huì)自動(dòng)修改參照表中的數(shù)據(jù)。

根據(jù)對(duì)表中數(shù)據(jù)的更新動(dòng)作,觸發(fā)器可以分為更新觸發(fā)器、插入觸發(fā)器和刪除觸發(fā)器。根據(jù)觸發(fā)器生效的時(shí)間,觸發(fā)器可以分為INSTEAD OF觸發(fā)器、AFTER觸發(fā)器。

建立觸發(fā)器時(shí),可以引用SQL Server提供的deleted表和inserted表。刪除數(shù)據(jù)時(shí),deleted表中存放已經(jīng)刪除的值。插入數(shù)據(jù)時(shí),inserted表中存放新插入的值。修改數(shù)據(jù)時(shí),deleted表中存放原值,inserted表中存放修改后的值。

一個(gè)觸發(fā)器與定義觸發(fā)器的表、激活動(dòng)作、觸發(fā)動(dòng)作三個(gè)部分相關(guān)。

2觸發(fā)器的應(yīng)用

“學(xué)生成績(jī)管理系統(tǒng)”數(shù)據(jù)庫(kù)中包括三張表:學(xué)生表(學(xué)號(hào),姓名,性別,出生日期,已修學(xué)分),課程表(課程號(hào),課程名,先修課,學(xué)分),成績(jī)表(學(xué)號(hào),課程號(hào),成績(jī))。學(xué)生表的主碼是學(xué)號(hào),課程表的主碼是課程號(hào),成績(jī)表的主碼由學(xué)號(hào)和課程號(hào)組成。

2.1保證參照完整性

向成績(jī)表中添加記錄時(shí),需檢查學(xué)生表中是否有該學(xué)生信息,以及課程表中是否開設(shè)該門課程。若沒有,則不允許插入??梢栽诔煽?jī)表上建立插入觸發(fā)器,保證參照完整性約束。代碼如下:

create trigger scinsert on成績(jī)表instead of insert

as

If not exists(select * from inserted,學(xué)生表where inserted.學(xué)號(hào)=學(xué)生表.學(xué)號(hào)) or not exists(select * from inserted,課程表where inserted.課程號(hào)=課程表.課程號(hào)) begin

print 無(wú)法插入信息!

rollback transaction

end

2.2級(jí)聯(lián)更新數(shù)據(jù)

修改課程表的課程號(hào)時(shí),如果該課程被學(xué)生選修,需要同時(shí)修改成績(jī)中的課程號(hào)??梢栽谡n程表上建立修改觸發(fā)器,實(shí)現(xiàn)級(jí)聯(lián)修改。代碼如下:

create trigger courseupdate on課程表after update as

update成績(jī)表

set課程號(hào)=(select課程號(hào)from inserted) where課程號(hào)=(select課程號(hào)from deleted)

2.3級(jí)聯(lián)刪除數(shù)據(jù)

從學(xué)生表中刪除學(xué)生記錄時(shí),也要把成績(jī)表中該生的選課記錄刪除??梢栽趯W(xué)生表上建立刪除觸發(fā)器,實(shí)現(xiàn)級(jí)聯(lián)刪除。代碼如下:

create trigger studelete on學(xué)生表

after delete

as

delete成績(jī)表where學(xué)號(hào)=(select學(xué)號(hào)from deleted)

3結(jié)束語(yǔ)

在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí),使用觸發(fā)器對(duì)數(shù)據(jù)進(jìn)行級(jí)聯(lián)插入、修改或刪除,可以保證數(shù)據(jù)的參照完整性,可以提高工作效率。

參考文獻(xiàn):

[1]崔巍.數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用[M].北京:高等教育出版社,2003.

[2]王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2006.

[3]張益星.SQL Server2000觸發(fā)器技術(shù)及應(yīng)用[J].信息技術(shù),2005(10):69-71.

[4]趙輝,陸冷飛. SQL觸發(fā)器在保持?jǐn)?shù)據(jù)庫(kù)完整性中的應(yīng)用[J].電腦開發(fā)與應(yīng)用,2007,20(3):43-45.

[5]王顯梅. SQL Server觸發(fā)器在學(xué)生管理系統(tǒng)中的應(yīng)用[J].廣西輕工業(yè),2011(12):84-85.

猜你喜歡
綜合性實(shí)驗(yàn)觸發(fā)器
主從JK觸發(fā)器邏輯功能分析
電子世界(2017年22期)2017-12-02 03:03:45
RNA提取、定量及RT—PCR綜合性實(shí)驗(yàn)在分子生物學(xué)檢驗(yàn)技術(shù)教學(xué)中的實(shí)施
使用觸發(fā)器,強(qiáng)化安全性
“信號(hào)分析與處理”課程群綜合性實(shí)驗(yàn)設(shè)計(jì)研究
科技資訊(2016年29期)2017-02-28 10:59:52
《食品生物化學(xué)》綜合性實(shí)驗(yàn)開設(shè)
科技視界(2016年13期)2016-06-13 12:05:00
分子生物學(xué)創(chuàng)新實(shí)驗(yàn)教學(xué)模式的實(shí)踐
科技視界(2015年29期)2015-10-19 11:11:30
對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
吉水县| 印江| 蓬莱市| 西充县| 前郭尔| 江口县| 滨州市| 宜黄县| 收藏| 新沂市| 库尔勒市| 奇台县| 青田县| 马关县| 东丰县| 安阳市| 普宁市| 板桥市| 阿拉尔市| 博野县| 乐都县| 横山县| 盐津县| 楚雄市| 怀集县| 泰和县| 潜山县| 高邑县| 景宁| 祁阳县| 鄂托克旗| 鄯善县| 华亭县| 周至县| 牡丹江市| 玉龙| 德清县| 沂南县| 长寿区| 云浮市| 舞阳县|