2017-05-05 23 views
3

我想在一個語句中一起做2個更新,我希望在事務子句中使用更新將有助於此。但事實並非如此。 所以下面,我期待它找到記錄並更新它。但它確實是第一個,當它到達第二個時,值「Expired」已經是0。 我該怎麼做? (文檔ID =「Syn25331」只是其中一個記錄來測試,但我想這樣做,對成千上萬的記錄,因此沒有文檔ID =「Syn25331」狀態)兩個更新,一個條件

BEGIN TRANSACTION; 

Update main 
Set expired = 0 
where Expires > GETDATE() and Expired =1 and docid ='Syn25331' 


Update main 
Set TractorID = AssetID 
where Expires > GETDATE() and Expired =1 and docid ='Syn25331' 

COMMIT; 

回答

5

我想你只需要一個逗號這裏更新兩列:

Update main 
Set expired = 0, TractorID = AssetID 
where Expires > GETDATE() and Expired = 1 
+0

補充說,該職位 –

2

你可以做,在一個更新語句

UPDATE main 
SET expired = 0, 
     TractorID = AssetID 
WHERE Expires > GETDATE() AND 
     Expired = 1