当前位置: 代码迷 >> Sql Server >> 写个触发器解决思路
  详细解决方案

写个触发器解决思路

热度:10   发布时间:2016-04-24 09:33:01.0
写个触发器
表:A 
表:B

A表有 Id

B表有 Id 和 AId

用触发器实现:

删除A表数据时把B表对应的AId=A.Id的数据删除,如果删除失败回滚到A表删除之前
------解决思路----------------------
CREATE TRIGGER FUNDELETETRAN
ON a
INSTEAD OF DELETE
AS
BEGIN
BEGIN TRAN
DELETE a
FROM DELETED T1
WHERE T1.id=a.id
DELETE b
FROM DELETED T1
WHERE T1.id=b.AId
COMMIT TRAN
END

------解决思路----------------------
--没用数据测试,参考下”

            create trigger tri_delete on A for delete
as
   delete from B 
                              from B join deleted  as d on b.aid=d.id
       if @@error<>0
       insert into A select * from deleted 
  相关解决方案