- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库触发器案例
一、课堂演示案例
例一:创建一个简单的insert触发器
先创建一个数据库备用
create database sampledb
go
use sampledb
go
在新创建的库中创建一个表备用
create table aa
(
a int,
b int
)
go
在新创建的表上创建一个insert触发器
use sampledb
go
if exists(select name from sysobjects where name =tr_intoa and type=tr)
drop trigger tr_intoa
go
create trigger tr_intoa on aa
for insert
as
print success inserted one row!
查看这个触发器的定义文本
sp_helptext checkpubdate
查看这个触发器的信息
sp_help checkpubdate
验证这个触发器的工作情况
insert into aa values (1,2)
----------------------------------------------------------------------------------------------------------------------
例二:创建一个触发器监视insert操作,若插入的记录中版权费超过30,则提示用户,并回滚此操作。
use pubs
go
if exists(select name from sysobjects where name =CheckRoyalty and type=tr)
drop trigger CheckRoyalty
go
create trigger checkroyalty
on roysched
for insert as
if (select royalty from inserted) 30
begin
print royaltytrigger:版权费不能超过 30
print 请将版权费修改为小于 30 的值
rollback transaction
end
insert into roysched values (BU1032,2,5,90)
select * from roysched where title_id=BU1032
----------------------------------------------------------------------------------------------------------------------
例三:创建一个触发器监视insert操作,若插入的记录中出版日期小于当前日期,则提示用户,并回滚此操作。
use pubs
go
if exists(select name from sysobjects where name =checkpubdate and type=tr)
drop trigger checkpubdate
go
create trigger checkpubdate
on titles
for insert as
if (select pubdate from inserted) getdate()
begin
select * from inserted --查看内存表中的数据
print 出版日期小于当前日期
rollback transaction
end
触发器示例测试
insert into titles(title_id,title,type,pubdate)
values(SW0001,test book,business,1990-1-1)
select * from inserted
----------------------------------------------------------------------------------------------------------------------
例四:列级update触发器示例
use pubs
go
if exists(select name from sysobjects where name =NoUpdatePayterms and type=tr)
drop trigger NoUpdatePayterms
go
CREATE TRIGGER NoUpdatePayterms
ON sales
FOR UPDATE AS
IF UPDATE (payterms)
BEGIN
PRINT 不能修改订单的付费条款
ROLLBACK TR
您可能关注的文档
- 全国各大高校传播学历年试题分类整理_以复旦张国良_传播学原理_章节分类_.doc
- 人民网如何防控网络谣言.doc
- 任鹏托福听力词汇精选.doc
- 任汝芬:2012年考研政治十大预测分析题.doc
- 任汝芬哲学基础班讲义(含笔记).doc
- 日记表情秀.doc
- 全国计算机等级考试二级C++样题.doc
- 全国计算机等级考试二级VF各章节笔试重点.doc
- 如何考电气工程师(中级).doc
- 如何下英文原版书.doc
- 分析let s单元56ago2卷纸zheng unit56.pdf
- 塑胶材料其它分类原料pa9t 12.pdf
- md16x16数字媒体切换器设备.pdf
- 者参考项目发起人学科类型单位序列承包商修订页代码顺序典型.pdf
- 届世界天然气大会阿姆斯特丹2006add10288.pdf
- 期测试记录表每周weekly g1g6 journeys tests level 6 lesson26.pdf
- modernize-whitepaper现代化您应用程序白皮书.pdf
- anybackup产品典型案例分析.pdf
- 约克金融工程课程tfeslide32.pdf
- 广州市妇女儿童医疗中心历份教学药历01tjy.pdf
文档评论(0)