延迟SQR

时间:2019-04-23 19:31:17

标签: peoplesoft sqr

我想知道是否可以延迟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

1 个答案:

答案 0 :(得分:0)

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