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

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

 2008-09-02 09:59:12 来源:WEB开发网   
核心提示: 2)创建触发器 根据需求分析,为BBS_Type表、BBS_LanMu表、BBS_Topic表分别建立AFTER触发器,SQL触发器在保持数据库完整性中的实际应用(4),该触发器由delete事件触发,建立在这3个表之上的触发器之间是嵌套触发的关系,该触发器功能是删除BBS_Topic表中

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表中属于刚删除帖子的所有回复信息。

上一页  1 2 3 4 5  下一页

Tags:SQL 触发器 保持

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