2013-01-16 89 views
-1

我想更新之後獲得字段的值, 例如每個字段的值,我有兩個表獲取該更新的更新操作

table1: ID  Price   UserID   type 

table2: IDLog ID(FK table1) OldPrice 

,我在表1中更新價格:

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

現在我想befor每一次更新獲得價值ID table1和插入到表2,
我如何獲得價值的每個領域?

+0

你使用'entity framework'嗎? – boindiil

回答

0

您可以使用輸出子句:

update table1 
output inserted.ID into table2 
set Price='1111' where type=1 
0

您可以將數據更新前參見表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中。

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