我在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
谢谢!