表: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