当前位置: 代码迷 >> Sql Server >> 触发器级联删有关问题
  详细解决方案

触发器级联删有关问题

热度:43   发布时间:2016-04-24 09:59:39.0
触发器级联删问题
代码如下:
USE [AutoDS]
GO
/****** Object:  Trigger [dbo].[tr_BaseInfo]    Script Date: 07/26/2014 19:25:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[tr_BaseInfo]
ON [dbo].[BaseInfo] 
instead of delete
AS 
begin
declare @id int
select @id=id from deleted
delete OwnerInfo where CarID=@id--外键
delete InsuranceForm where InsuredId=@id--外键
--delete BaseInfo where Id=2--加不加这一条都没效果(主键)
end

delete BaseInfo where Id=2--执行入口
注:BaseInfo主表,,OwnerInfo及InsuranceForm为外键表,,调用Delete BaseInfo where id=2这条语句时,外键表的那条数据可以删除,主键表的记录不能删.指点下哪里不对.
------解决思路----------------------
把instead of delete
修改为: after delete
------解决思路----------------------
你先把instead of delete改为after delete,然后在最后加一句,insert into BaseInfo select *  from  deleted where Id=@id可以么
  相关解决方案