ПОСЛЕ INSERT TRIGGER, вызывающего взаимоблокировку в SQL Server 2008 R2 - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть триггер уровня таблицы в Oracle, который отлично работает. Сейчас пытаюсь воспроизвести в SQL Server 2008 R2.

Если я выполняю простой триггер AFTER UPDATE, он, кажется, работает нормально при обновлении, но игнорирует вставки. (Oracle, кажется, не) Если я делаю это после ПОСЛЕ ВСТАВКИ, ОБНОВЛЕНИЕ вызывает тупик.

Вот код:

CREATE TRIGGER [dbo].[trgPOLineAudit] 
   ON  [fin_live64].[dbo].[POP_LINES] 
   AFTER INSERT, UPDATE 
AS 
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

BEGIN TRANSACTION WriteAuditRecord;

INSERT INTO dbo.OT_POP_LINE_CHANGES 
(COMPANY_CODE, DIVISION, PO_NUMBER,PO_LINE_NUMBER, CREATION_DATE, 
    CHANGE_DATE, TG_UPLOAD_DATE)
SELECT COMPANY_CODE, DIVISION, PO_NUMBER, PO_LINE_NUMBER, GETDATE(), 
    GETDATE(), '11/17/1858' 
FROM inserted;

COMMIT TRANSACTION WriteAuditRecord;

END

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...