代码如下:
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可以么