Задержка удаления транзакций SQL в SQR - PullRequest
0 голосов
/ 23 апреля 2019

Мне интересно, есть ли способ отложить удаление транзакций в программе SQR? У меня возникла проблема, когда я удаляю данные из таблицы, в которой есть триггер, который вставляет строки в другую таблицу (Audit), и единственный ключ в таблице, который можно изменить, - это отметка даты / времени, но поскольку эти транзакции происходят в одно и то же время (с точностью до сотых секунд), это вызывает повторные ошибки вставки в триггере 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 голосов
/ 23 апреля 2019

Пожалуйста, переместите все внутренние соединения в предложение where для удаления. Вы, вероятно, не собираетесь удалять строки из этих внутренних объединенных таблиц, некоторые из которых могут возвращать несколько строк для emplid.

...