- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库实验报八信管1102郭明光
福建工程学院计算机与信息科学系
实验报告
2012 – 2013 学年第 一 学期 任课老师: 孙水华
课程名称
数据库实验
班级
信息管理
座号
20
姓名
郭明光
实验题目
实验八 触发器
实验时间
实验开始日期:2012.12.12 报告提交日期:2012.12. 17
实验目的、要求
实验目的
掌握SQLServer中触发器的使用方法。
二、实验内容
按照《数据库系统概论》的SPJ关系模式实现以下操作:
1、创建一个作用在P表上的的触发器P_Ins,确保用户在插入或更新数据时所提供的WEIGHT值是非负和非零的,否则给出错误提示并回滚此操作。请测试该触发器。测试方法自定。
2、创建一个作用在J表上的的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。请测试该触发器。测试方法自定。
3、首先在数据库中使用SELECT INTO 语句从SPJ、J、P表中创建一个新表J_P_QTY。表中的属性列包括:工程号、工程名、零件号、零件名及总数量,其中总数量的值是各工程使用各种零件的数量总和(不考虑零件是由哪个供应商提供的)。然后创建一个作用在SPJ表上的Insert型触发器,该触发器能完成两项任务:
1)当用户插入的JNO使用的PNO的值在J_P_QTY中不曾存在时禁止插入;
2)每当在SPJ表中插入一条合理记录时,使J_P_QTY表的QTY列的值保持同步更新。
请测试该触发器。测试方法自定。
三、实验要求:
1、记录完整语句。在实验过程注意验证语句的执行效果。
2、记录实验过程中发生的有学习意义的错误及错误信息。
四、实验小结
实验设计内容
create trigger P_Ins
on p
for update,insert
as
declare @a int,@b int
select @a=weight from deleted
select @b=weight from inserted
if @a=0 or @b=0
begin
print 插入失败
raiserror(WEIGHT值是非负和非零的,16,1)
rollback transaction
end
drop trigger P_Ins
insert into p values(p8,螺母,蓝,0)
update p
set weight=-9
where pno=p1
alter table p enable trigger P_Ins
create trigger J_Update
on j
for update
as
if update(jname) and update(city)
begin
print 操作失败
raiserror(禁止同时修改项目的名称和所在城市,16,1)
rollback transaction
end
update j
set jname=一汽,city=福州
where jno=j1
select spj.jno,jname,pname,spj.pno,sum(qty) qty into J_P_QTY from spj,p,j
where spj.pno=p.pno and spj.jno=j.jno
group by spj.pno,spj.jno,jname,pname
create trigger k
on spj
for insert
as
declare @a char(4)
select @a=pno from inserted
if not exists (select * from J_P_QTY where @a=pno )
begin
print 插入失败
raiserror(PNO的值在J_P_QTY中不曾存在,16,1)
rollback transaction
end
insert into spj values(s3,p4,j1,100)
insert into p values(p8,螺母,蓝,0)
select spj.jno,jname,pname,spj.pno,sum(qty) qty into J_P_QTY from spj,p,j
where spj.pno=p.pno and spj.jno=j.jno
group by spj.pno,spj.jno,jname,pname
create trigger n
on spj
for insert
as
declare @a char(4),@b char(4),@c int
select @a=pno,@b=jno,@c=qty from inserted
update J_P_
您可能关注的文档
- 抽样和抽样分.ppt
- 拉脱法测液体面张力系数及数据处理.pdf
- 拓维之前面试0512(已修改格式).doc
- 拉格朗日余项误差计算.pdf
- 挖掘机相关中文翻译.doc
- 挖孔桩托换与浆技术在岩溶塌陷区基础加固中的应用.doc
- 排痰机操作技规程.doc
- 抗菌陶瓷的制和性能研究.pdf
- 投资学invstment课件 Chap012.ppt
- 排队理论模型件.ppt
- Recycle1Thefashionshow(课件)-人教PEP版(2012)英语四年级下册.pptx
- 实际问题与反比例函数课时3课件-人教版九年级数学下册.pptx
- 高三一轮复习课后习题化学考点规范练32烃的衍生物.docx
- 应急计划程序文件.doc
- 金融市场学-第十章-利率机制-课件.ppt
- 福建省部分地市校2025届高中毕业班3月质量检测历史试题参考答案及评分标准.docx
- 2024-2025学年上学期期中联考初三年语文科试卷.docx
- 二〇二三年“领军计划班 ”招生综合素质测试历史试题.docx
- (最新)25年秋人教版四年级数学上册大数的认识15.单元复习提升.pptx
- (最新)25年秋人教版四年级数学上册5.亿以内数的大小比较.pptx
文档评论(0)