如何添加"最后更新"专栏(SQL Server)?

时间:2014-12-29 06:33:33

标签: sql-server

我有一个名为a3lf的数据库。在我的表players上,我想添加一个名为LastUpdated的列。当行的某些部分被修改时,我希望表LastUpdated更新时间和日期信息,因此我可以在将来进行一些清理。

有可能吗?我正在寻找那个,我发现一些代码仍然让我的知识感到困惑:

ALTER TRIGGER dbo.SetLastUpdatedBusiness 
ON dbo.Businesses 
AFTER UPDATE -- not insert!
AS
BEGIN
    IF NOT UPDATE(LastUpdated)
    BEGIN
        UPDATE t
            SET t.LastUpdated = CURRENT_TIMESTAMP -- not dbo.LastUpdated!
            FROM dbo.Businesses AS t -- not b!
            INNER JOIN inserted AS i 
            ON t.ID = i.ID;
    END
END
GO

谢谢!

1 个答案:

答案 0 :(得分:2)

This will be the code for your table.

CREATE TRIGGER dbo.trg_players_Update_LastUpdatedColumn
ON <Your_Schema_name>.players
AFTER UPDATE
AS
    UPDATE <Your_Schema_name>.players
    SET LastUpdated = GETDATE()
    WHERE <ID> IN (SELECT DISTINCT <ID> FROM Inserted).

Generally <ID> is the column, based on which you have updated values (Column used in where filter of an update statement).

希望这会有所帮助.. !!