首页 > 解决方案 > 如何根据更新的记录更改创建列?

问题描述

使用 SQL Server 2017

我有下表。

UserId OrderId Color
1      a1b2     Red
1      c1d2     Blue
1      e1f2     Green

如何根据正在更新的颜色创建列

UserId  OrderId  Color   UpdatedColor
1       a1b2     Red     Null
1       c1d2     Blue    Null
1       e1f2     Yellow  Yellow

例如,如果颜色已更新为YellowGreen我希望UpdatedColor列记录该更改。

标签: sqlsql-server

解决方案


您可以使用TRIGGER

CREATE TRIGGER TR_TempTable_Update 
ON TempTable AFTER UPDATE
AS
BEGIN

    UPDATE t 
    SET t.UpdatedColor = d.Color
    FROM TempTable t inner join deleted d ON t.UserId = d.UserId

END

推荐阅读