延迟删除SQR中的SQL事务

问题描述 投票:0回答:1

我想知道是否有办法延迟SQR程序中的删除事务?我有一个问题,我从一个表中删除数据,该表有一个触发器,将行插入另一个(审计)表,并且表上唯一可以更改的键是日期/时间戳,但因为这些事务在同一时间(低至一秒钟的时间)发生它会导致sql触发器上出现重复的插入错误。我希望是否有办法延迟在SQR中删除每一行,这对于这个问题是一个很好的解决方法。谢谢!

BEGIN-PROCEDURE DELETE-PSROLEUSER-ROLES

SHOW 'BEGINNING DELETE-PSROLEUSER-ROLES'

BEGIN-SQL
DELETE PSRO
FROM PSROLEUSER PSRO
INNER JOIN PS_GH_AD_X_WALK B ON B.OPRID = PSRO.ROLEUSER
INNER JOIN HRDEV01_FOR_BUDGET_MODULE.HRDEV92B.dbo.PS_JOB C ON C.EMPLID = B.GH_AD_EMPLID AND B.GH_AD_EMPLID <> ''
WHERE C.EFFDT = 
(SELECT MAX(A_ED.EFFDT) FROM HRDEV01_FOR_BUDGET_MODULE.HRDEV92B.dbo.PS_JOB A_ED 
WHERE C.EMPLID = A_ED.EMPLID 
AND C.EMPL_RCD = A_ED.EMPL_RCD 
AND A_ED.EFFDT <= SUBSTRING(CONVERT(CHAR,GETDATE(),121), 1, 10)) 
AND C.ACTION = 'TER'
END-SQL

END-PROCEDURE DELETE-PSROLEUSER-ROLES
peoplesoft sqr
1个回答
0
投票

请将所有内部联接移动到删除的where子句。您可能不打算从这些内部连接表中删除行,其中一些表可能会为emplid返回多行。

© www.soinside.com 2019 - 2024. All rights reserved.