如何基于更新的记录更改创建列?

时间:2019-02-27 19:46:11

标签: sql sql-server

使用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

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

2 个答案:

答案 0 :(得分:0)

您可以使用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

答案 1 :(得分:-1)

您可以参考下面的示例查询

    Alter Table T1
    Add Column 'Updated_column' 
    varchar(20)
    DEFAULT NULL;

  Update table t1 set color=new_color, 
     updated_column =new_color
   where user_id=1 and order_id='e1f2'