我想更新之後獲得字段的值, 例如每個字段的值,我有兩個表獲取該更新的更新操作
table1: ID Price UserID type
table2: IDLog ID(FK table1) OldPrice
,我在表1中更新價格:
UPDATE table1
SET Price = '1111'
WHERE TYPE = 1
現在我想befor每一次更新獲得價值ID table1和插入到表2,
我如何獲得價值的每個領域?
我想更新之後獲得字段的值, 例如每個字段的值,我有兩個表獲取該更新的更新操作
table1: ID Price UserID type
table2: IDLog ID(FK table1) OldPrice
,我在表1中更新價格:
UPDATE table1
SET Price = '1111'
WHERE TYPE = 1
現在我想befor每一次更新獲得價值ID table1和插入到表2,
我如何獲得價值的每個領域?
恕我直言FOR UPDATE TRIGGER
是要走的路。這樣你可以在數據庫中包含所有的日誌邏輯。
您可以使用輸出子句:
update table1
output inserted.ID into table2
set Price='1111' where type=1
您可以將數據更新前參見表2。
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中。
更好的方法是在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
你使用'entity framework'嗎? – boindiil