更新或插入时MSSQL触发器



我正在尝试创建一个触发器,每当插入或更新table1中的记录时,将记录插入table2。这个想法是创建一个记录在Table1中都通过的每个"状态"的历史日志(Table2(。

谢谢

您可以记住;您不能多行更新或插入。

这是一个更新触发器:

CREATE TRIGGER [dbo].[trVEHICLE_DEBUGLOG]
ON [dbo].[VEHICLE] AFTER UPDATE
AS
    DECLARE @ID BIGINT = (SELECT ID FROM INSERTED)
    DECLARE @NEWVALUE BIGINT = (SELECT VEHICLEGROUPID FROM INSERTED)
    DECLARE @OLDVALUE BIGINT = (SELECT VEHICLEGROUPID FROM DELETED WHERE ID = @ID)
    IF (@NEWVALUE <> @OLDVALUE) BEGIN
        INSERT INTO dbo.DEBUGLOG(DEBUGTABLE, DEBUGCOLUMN, DEBUGID, DEBUGOLDVALUE, DEBUGNEWVALUE, DEBUGDATETIME)
        VALUES
        ('VEHICLE','VEHICLEGROUPID', @ID, @OLDVALUE, @NEWVALUE, GETDATE())
    END
GO

这是使用触发器插入和更新时的好练习。在创建一个之前,请确保您了解它。您可以将下面的链接用作您的参考

https://learn.microsoft.com/en-us/sql/t-sql/statement/create-trigger-trigger-transact-sql

最新更新