2)创建触发器
根据需求分析,为BBS_Type表、BBS_LanMu表、BBS_Topic表分别建立AFTER触发器,该触发器由delete事件触发。建立在这3个表之上的触发器之间是嵌套触发的关系,即BBS_Type表上的触发器触发BBS_LanMu表上的触发器,BBS_LanMu表上的触发器再触发BBS_Topic表上的触发器。本文中使用的数据库为Microsoft SQL Server 2005。要让触发器能嵌套触发必须在数据库“属性”中,将“递归触发器已启用”设置为TRUE。
1.为BBS_Type表(存储大版块信息)建立触发器DelType。该触发器功能是删除BBS_LanMu表中属于刚删除的大版块的所有分论坛信息。
create trigger [DelType] on [dbo].[BBS_Type]
after delete
as
begin
declare @typeid int
select @typeid=TypeID from deleted –获得要被删除的版块ID
delete from dbo.BBS_LanMu where Typeid=@typeid
end
2.为BBS_LanMu表(存储分论坛信息)建立触发器DelLanmu。该触发器功能是删除BBS_Topic表中属于刚删除分论坛的所有帖子信息。
create trigger [DelLanmu] on [dbo].[BBS_LanMu]
AFTER delete
as
BEGIN
declare @lmid int
select @lmid=Lmid from deleted –获得要被删除的分论坛ID
delete from dbo.BBS_Topic where Lmid=@lmid
END
3.为BBS_Topic表(存储帖子信息)建立触发器DelTopic。该触发器功能是删除BBS_Reply表中属于刚删除帖子的所有回复信息。
create trigger [DelTopic] on [dbo].[BBS_Topic]
after delete
as
BEGIN
declare @tid int
select @tid=TID from deleted –获得要被删除的帖子ID
delete from dbo.BBS_Reply where TID=@tid
END
执行过程
触发器执行过程如图Pic-2。
当数据操作层对数据表BBS_Type发出delete一条记录的时候,触发器DelType被触发,此触发器将删除BBS_LanMu表中属于刚删除的大版块的所有分论坛信息。
当DelType触发器对数据表BBS_LanMu删除一条记录时,又触发BBS_LanMu表上的触发器DelLanmu,此触发器将删除BBS_Topic表中属于刚删除分论坛的所有帖子信息。
当DelLanmu触发器对数据表BBS_Topic删除一条记录时,又触发触发器DelTopic,此触发器将删除BBS_Reply表中属于刚删除帖子的所有回复信息。
至此数据库中与BBS_Type中删除记录相关联的所有记录全部删除,保证了数据库各表数据的完整性与一致性。这个过程是在数据库中自动进行的,因此速度非常快,用户只需要对BBS_Type表发出删除一条记录的命令,其他表中相关的记录会自动删除。
3.1.总结:
触发器能保持数据的完整性与一致性,它可以方便地基于一个表的修改,自动更新其他相关表的记录,以保证数据的完整性。在数据库的应用中,触发器扮演着很重要的角色。无论是作为提供高级参照完整性功能的途径,还是执行自动维护非正规化数据的任务,触发器都能帮助用户实现满足实际需要的规则,简化业务逻辑,并使系统更方便更有效。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。