0

这类似于SQL Server 2008 中比较删除和插入的表,但结果不是我想要的。

如果特定列发生更改,我确实希望触发器触发,但是我们拥有的程序会删除所有信息并在每次保存时重新插入所有新信息。没有简单的更新。

我想写入审计表,但前提是该特定列在保存后发生更改。

ALTER TRIGGER [dbo].[deleted] 
ON [dbo].[DispTech]           
FOR DELETE, INSERT
AS
    SET NOCOUNT ON;

    IF (SELECT serviceman FROM deleted) <> (SELECT ServiceMan FROM inserted)
    BEGIN
        INSERT INTO misc.dbo.DeletedTest ("Status", dispatch, serviceman)     
            SELECT
                'Deleted', d.Dispatch, d.ServiceMan 
            FROM
                deleted d

       INSERT INTO misc.dbo.DeletedTest ("Status", dispatch, serviceman) 
           SELECT
               'Inserted', i.Dispatch, i.ServiceMan 
           FROM
               inserted i
END 

这不起作用,因为它会为所有内容返回 NULL。我知道如果每次都将所有内容都转储到审计表中,我可以将其全部整理出来,但我真的想要一组更干净的数据并希望将其用于其他处理。

4

0 回答 0