sql server中列值发生变化时如何生成newid

wnrlj8wa  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(341)

考虑下面的例子

ID| RecordUID                          |   Person |Value
1 |49D62793-989B-4135-9873-21572D511297|   Test   |10
2 |49D62793-989B-4135-9873-21572D511297|   Test   |11
3 |DDB40B89-2BB4-4536-9847-32B9F53C0196|   Test1  |21

当person列的值发生变化时,如何生成上面的新id(recorduid(newid())?
我需要一个选择查询,比如

Select ID,NewID() when a change in Person, value from Table A

提前谢谢!!!

tzxcd3kk

tzxcd3kk1#

我想你在找一个 AFTER UPDATE TRIGGER 如下所示

CREATE TRIGGER MyTrig
ON Data
AFTER UPDATE
AS

   UPDATE D
   SET RecordUID = NEWID()
   FROM Data D 
   JOIN (
          SELECT I.Id
          FROM INSERTED I
          JOIN DELETED D ON I.Id = D.Id AND I.Person <> D.Person
        ) T ON D.Id = T.Id;

这里有一个db<>小提琴,你可以看到它是如何工作的在线。

相关问题