2017-05-05 56 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