-1

我想在更新后获取字段的值,例如我有两个表

table1:  ID       Price          UserID         type 

table2:  IDLog    ID(FK table1)  OldPrice  

我更新了表 1 中的价格:

UPDATE table1
SET    Price = '1111'
WHERE  TYPE = 1  

现在我想在每次更新之前获取值 ID 表 1 并插入表 2,
我如何获取每个字段的值?

4

4 回答 4

1

恕我直言FOR UPDATE TRIGGER是要走的路。这样您就可以在数据库中包含所有日志记录逻辑。

于 2013-01-16T08:55:47.027 回答
1

更好的方法是在 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
于 2013-01-16T08:58:56.033 回答
0

您可以使用输出子句:

update table1
output inserted.ID into table2
set Price='1111' where type=1
于 2013-01-16T08:52:00.373 回答
0

您可以在更新之前将数据插入 table2。

INSERT INTO table2
SELECT ID, Price from table1
WHERE  TYPE = 1

--Update table1 after inserting
UPDATE table1
SET    Price = '1111'
WHERE  TYPE = 1  

另一种方法是为 table1 创建一个更新触发器,它将更新的数据插入到 table2。

于 2013-01-16T08:55:14.397 回答