关于网友提出的“ 主从表用触发器删除出错,请教各位大侠”问题疑问,本网通过在网上对“ 主从表用触发器删除出错,请教各位大侠”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 主从表用触发器删除出错,请教各位大侠描述:
小弟在mssql中一主从表
主表中有一触发器:
CREATE TRIGGER del_child_table ON [dbo].[Month_Check_C]
FOR DELETE
as
delete Month_Check_C1 from (select nos,id from deleted ) as a
where Month_Check_C1.sub_id=a.id
在後台删除主表记录OK
在delphi前台用如下删除出错:
tparent_qu.Delete;
tparent_qu.UpdateBatch();
错误如下:
key information is insufficient or incorrent.too many rows were
affected by update
解决方案1:
应该是触发器出的错,你都可以先把触发器去掉试验下。
在触发器中先SELECT 出主表关连从表的字段,在删除子表。
CREATE TRIGGER del_child_table ON [dbo].[Month_Check_C]
FOR DELETE
as
delete Month_Check_C1 where sub_id=(select id from deleted)
试试!
>>>>> 你的代码: (select nos,id from deleted ) as a 有错!
这种情况根本就不用触发器
在子表加个外键就搞定!
顶一下,
解决方案5:缺少主键,出现了重复记录