我觉得你做个级联删除就可以了,还用不到触发器吧。触发器: create or replace trigger trg before delete on bbsTopic for each row begin delete 回复表 a where a.BBS_ID = bbsTopic .BBS_ID; end
我只会在新建表的时候做个级联,但是现在表已经创建好了,而且有了很多数据,不方便该。所以做触发器。楼上的代码不能运行。我也那么写了一次,但是奇怪错了。 然后又写了个 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这句有错
不知道不同数据库直接这种语言是否有区别
create or replace trigger trg
before delete on bbsTopic
for each row
begin
delete 回复表 a where a.BBS_ID = bbsTopic .BBS_ID;
end
然后又写了个
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这句有错