获取在更新操作中更新的每个字段的值
本文关键字:更新 字段 操作 获取 | 更新日期: 2023-09-27 17:53:25
我想获取字段更新后的值,例如,我有两个表
table1: ID Price UserID type
table2: IDLog ID(FK table1) OldPrice
和i更新表1中的Price:
UPDATE table1
SET Price = '1111'
WHERE TYPE = 1
现在我想在每次更新之前得到值ID table1和插入到table2,
我如何得到价值的每一个领域??
我认为FOR UPDATE TRIGGER
是可行的。这样就可以在DB中包含所有的日志逻辑。
更好的方法是在table1上使用触发器(当然是SQL Server端)。
CREATE TRIGGER table1_update ON table1 FOR UPDATE
AS
BEGIN
INSERT INTO table2 (IDLog, OldPrice)
SELECT ID, Price
FROM deleted
INNER JOIN inserted ON
deleted.ID = inserted.ID
deleted.Price <> inserted.Price
END
您可以使用output子句:
update table1
output inserted.ID into table2
set Price='1111' where type=1
可以先插入数据再更新。
INSERT INTO table2
SELECT ID, Price from table1
WHERE TYPE = 1
--Update table1 after inserting
UPDATE table1
SET Price = '1111'
WHERE TYPE = 1