在INSERT TRIGGER之后导致SQL Server 2008 R2上的死锁

时间:2012-02-16 18:18:26

标签: sql-server-2008

我在Oracle中有一个表级触发器可以正常工作。现在尝试在SQL Server 2008 R2中重现。

如果我执行一个简单的AFTER UPDATE触发器,它似乎在更新时工作正常但忽略插入。 (甲骨文似乎没有)。如果我在AFTER INSERT上执行此操作,则更新它会导致死锁。

以下是代码:

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

谢谢!

0 个答案:

没有答案