系统运维.数据异常.子单据头出现重复数据行问题排查

【应用场景】
子单据头出现重复数据行,原因不明。
正常情况下,同一个单据,子单据头也只会有一条数据。
目前已知的异常场景有:
<1>单据有人为在数据库删过数据,主表数据(单据头)被删了,但是从表数据(子单据头)未删干净,导致后期录单时,新数据会和旧的脏数据撞FID,导致虽然新增单据时只插入了一行子单据头数据,最后表现就是出现重复数据行。
【排查方法】
下面以销售出库单为例,进行演示。
<1>给子单据头表新增触发器,捕获到子单据头出现重复数据行时,抛数据库异常。
IF EXISTS(SELECT * FROM sys.objects WHERE name='tg_T_SAL_OUTSTOCKFIN_MultiRow' AND type='TR') DROP TRIGGER tg_T_SAL_OUTSTOCKFIN_MultiRow GO CREATE TRIGGER tg_T_SAL_OUTSTOCKFIN_MultiRow ON T_SAL_OUTSTOCKFIN FOR INSERT,UPDATE AS BEGIN --定义变量 DECLARE @FID INT,@FBILLNO NVARCHAR(50),@ERRORMSG NVARCHAR(500) --在inserted表中查询已经插入记录信息 SELECT @FID=Inserted.FID FROM inserted IF @FID IS NOT NULL AND EXISTS(SELECT * FROM T_SAL_OUTSTOCKFIN WH
系统运维.数据异常.子单据头出现重复数据行问题排查
【应用场景】子单据头出现重复数据行,原因不明。正常情况下,同一个单据,子单据头也只会有一条数据。目前已知的异常场景有:<1>单据有人...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



