实验4
更新时间:2024-01-04 21:02:01 阅读量: 教育文库 文档下载
- 实验4推荐度:
- 相关推荐
实验八使用触发器实现数据完整性
一,实验目的
使学生理解用触发器实现数据完整性的重要性,掌握用触发器实现数据完整性的方法,掌握用触发器事先参照完整性的方法,并理解触发器与约束的不同。 二,实验内容
(1)为表建立触发器,实现域完整性,并激活触发器进行验证。
(2)为表建立级联更新的触发器,实现参照完整性,并激活触发器进行验证。 (3)比较约束与触发器的出现顺序。 三,实验指导
1.创建ZIKUI数据库的表S的INSERT触发器tri_INSERT_S,插入年龄在15-30之间的记录。
(1) 打开SQL Server Management Studio 窗口
(2)单击标准工具栏上的新建查询按钮,打开查询编辑器窗口
(3)在窗口中直接输入一下CREATE TRIGGER语句创建一个INSERT触发器。如下图:
USEJXGL
GO
CREATETRIGGERtri_INSERT_SONS
FORINSERT
AS
DECLARE@S_agetinyint SELECT@S_age=S.age
FROMS
IF@S_ageNOTBETWEEN 15 AND 30
ROLLBACKTRANSACTION
GO
图8.1 创建一个INSERT触发器
(2)在表中分别插入两行记录以激活该触发器,第一行年龄在15-30之内,第二行年龄的值在15-30以外。如下图:
USEJXGL
GO
INSERTINTOS
VALUES('40','王晓杰',21,'W','MA')
INSERTINTOS VALUES('41','邵庆国',14,'M','IS')
GO
图8.2 插入记录激活触发器
2.1创建JXGL数据库的表S的DELETTE触发器tgr_s_delete,当删除S表中的记录时触发该触发器。如下图:
USEJXGL
GO
CREATETRIGGERtgr_s_delete
ONS FORDELETE
AS
PRINT'备份数据中……'
IF(object_id('s_backup','U')isnotNULL) INSERTINTOS_backupSELECTsno,snamefromdeleted
ELSE
SELECT*INTOS_backupFROMdelected
PRINT'数据备份成功'
GO
图8.3删除记录触发该触发器
2.2 删除表S的记录.如下图:
useJGXL
go
deleteSwheresno='14'
select*fromS select*fromS_backup
go
图8.4删除表S的记录
2.3返回DDL触发器的对象标号.如下图:
selectOBJECT_ID fromsys.triggers
wherename='databasetriggerlog'
Go
图8.5返回DDL触发器的对象标号
2.4返回adventtureworks2008数据库中的production.workorder表的对象ID.如下图:
usemaster
go
selectOBJECT_ID('adventureworks2008.production.workorder')
as'object id'
go
图8.6返回adventtureworks2008数据库中的production.workorder表的对象ID
2.5通过验证表是否具有对象ID来检查制定表的存在。如果该表存在,将其删除;如果不存在,则不执行DROP TABLE语句。如下图:
usemaster
go
ifOBJECT_ID('dbo.awbuildversion','u')isnotnull
droptabledbo.awbuildversion
go
图8.6验证表是否具有对象ID来检查制定表的存在
2.6 使用sys.dm_db_index_operational_stats()函数返回adventureworks2008数据库中的person.address表的所有索引和区分信息。如下图:
usemaster
go
declare@db_idint declare@object_idint
set@db_id=DB_ID('adventureworks2008')
set@object_id=object_id('adventureworks2008.person.address')
if@db_idisnull
printN'invalid database' elseif@object_idisnull
printN'invalid object'
else
select*fromsys.dm_db_index_operational_stats(@db_id,@object_id,null,n
ull)
go
图8.7使用函数返回表中的索引和信息
3.在数据库JXGL中有3个表,即S,SC和C,其中,表SC的字段SNO作为外键与表S连接。如果要删除表S中的记录,需要创建触发器,先删除SC中与要删除记录级联的所有记录,再删除表S中的记录。 如下图:
USEJXGL
GO
CREATETRIGGERdelete_sc_sONS
INSTEADOFDELETE
AS
DELETE@s_nochar(9) SELECT@s_no=snoFROMdeleted
DELETEFROMSC WHEREsno=@s_no DELETEFROMS WHEREsno=@s_no
GO
图8.8删除表S的记录
正在阅读:
实验401-04
从税收视角看扬州服务业发展04-24
初二语文上学期文言文课内阅读05-01
高考地理常见简答题答题规范01-03
电工基础教案102-27
人教版一年级下册音乐教案全册01-25
五年级英语上册第二单元测试题 - 图文05-27
沉淀平衡11-12
眼科护士个人年终工作总结范文02-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 泰州市海陵区2014-2015学年八年级下学期期末数学试题及答案
- 岩土工程勘察报告
- 枣庄市中心城城市规划管理技术导则
- 2017学年度春第二学期学校德育工作计划与2017学年度秋季第一学期小学后勤工作计划汇编
- 《状元360》2013届高考历史一轮总复习 第二十三单元 综合测试卷
- 膨胀土路基要求
- 渭源县2014-2015九年级数学第一学期第二阶段试题
- 数据库检索实习报告(5份)
- 产品管理 - 图文
- 茅台03(冯柳)投资思想之201210白酒访谈
- 2017年新版仁爱版七年级上册英语课文翻译
- 2015西城一模 北京市西城区2015届中考一模物理试题及答案
- 度米文库汇编之银行实习心得体会2018精选例文
- 教育教学改革实验的案例分析与研究-精品文档
- 小报--走进澳大利亚- 杭州市余杭高级中学 首页 - 图文
- 七年级语文下册 17 安塞腰鼓导学案 新人教版(4)
- 世说新语读后感 - 1
- 又见枝头吐新绿
- 智能仪器实习报告
- 中国清洁工具行业发展研究报告 - 图文