WEB开发网
开发学院数据库MSSQL Server SQL触发器在保持数据库完整性中的实际应用 阅读

SQL触发器在保持数据库完整性中的实际应用

 2008-09-02 09:59:12 来源:WEB开发网   
核心提示: 当一个触发器执行激发另一个触发器的操作,而另一个触发器又激发第三个触发器,SQL触发器在保持数据库完整性中的实际应用(2),如此等等,这时就发生了触发器的嵌套, 当用户回复帖子时,对BBS_Reply表操作的同时,也就是下文中用到的嵌套触发器,DML 触发器和 DDL 触发器最多可以嵌套

当一个触发器执行激发另一个触发器的操作,而另一个触发器又激发第三个触发器,如此等等,这时就发生了触发器的嵌套。也就是下文中用到的嵌套触发器。DML 触发器和 DDL 触发器最多可以嵌套 32 层。

2.1.触发器的应用

我们以BBS论坛数据库中多个关联表的操作为例,阐述触发器在保持数据完整性、一致性中的应用。

在BBS的程序设计中,我们经常会碰到对一个数据表操作的同时,还要自动对另外几个相关联的数据表进行操作,以保证各数据表之间数据的完整性与一致性。BBS论坛中常用的数据表有:

BBS_User表(存储用户信息):用于存储用户信息。字段有用户名、密码、积分、发帖数、等级ID、最后一次发帖、qq、Email、头像、注册时间等;

BBS_Type表:用于存储大版块信息。字段有版块ID、版块名称等;

BBS_LanMu表:存储分论坛信息。字段有分论坛ID、名称、所属大版块ID、主题总数、回复总数、版主等;

BBS_Topic表:存储帖子信息。字段有帖子ID、标题、内容、发帖人、所属分论坛ID、回复总数、点击总数、最后一次回贴时间、回帖人等;

BBS_Reply表:存储回复信息。字段有回复内容、回复人、回复的帖子ID、回复时间等。

在BBS论坛中,触发器主要应用于以下几种情况:

当用户在分论坛里发表帖子时,对BBS_Topic表进行操作,但同时要自动对分论坛表BBS_LanMu里面的论坛主题总数增1,还要更新BBS_User表给该用户增加相应的积分,当用户积分达到一定分数时,自动更新该用户的等级ID,表示该用户已经升了一个等级。

当用户回复帖子时,对BBS_Reply表操作的同时,也需要对分论坛表BBS_LanMu里的回复总数增1、对BBS_Topic表的回复总数增1并更新该表里的最后回帖标题和时间,还要将BBS_User表里的该用户的发帖数增1、自动增加相应积分、更新最后发帖标题和时间等;

上一页  1 2 3 4 5  下一页

Tags:SQL 触发器 保持

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接