求帮写一个触发器
删除bbsTopic中的一个帖子的时候,得把回复表中该帖子下的回复全部删掉。两张表通过BBS_Id相关联。
我在两张表中还建立了视图,得先删掉了回复才能执行删除帖子表中的帖子吧。
谢谢~

解决方案 »

  1.   

    补充:我用的是SQL SERVER2005
    不知道不同数据库直接这种语言是否有区别
      

  2.   

    我觉得你做个级联删除就可以了,还用不到触发器吧。触发器:
    create or replace trigger trg
    before delete on bbsTopic 
    for each row
    begin 
      delete 回复表 a where a.BBS_ID = bbsTopic .BBS_ID;
    end
      

  3.   

    我只会在新建表的时候做个级联,但是现在表已经创建好了,而且有了很多数据,不方便该。所以做触发器。楼上的代码不能运行。我也那么写了一次,但是奇怪错了。
    然后又写了个
    CREATE TRIGGER [dbo].[Delete_bbsReply]
    ON [dbo].[bbsTopic] 
    INSTEAD OF DELETE
    AS
    BEGIN
          DECLARE @BBS_Id int
          SELECT @BBS_Id=BBS_Id FROM DELETE
          --删除回复
          DELETE bbsReply WHERE BBS_Id=@BBS_Id
          --删除帖子
          DELETE bbsTopic WHERE BBS_Id=@BBS_Id
    END
    也错了,说SELECT BBS_Id=@BBS_Id FROM DELETE这句有错