2017-08-24 128 views
-1
Update TransactionsMovs SET SubNumId='5253420' where SubNumId='3014362178619A000000033F' and CustNumKey='0024180002' 
Update TransactionsMovs SET SubNumID='5253416' where SubNumId='301402662C2DC5800000017C' and CustNumKey='0024180003' 
Update TransactionsMovs SET SubNumID='5253419' where SubNumId='301402662C42F480000036AF' and CustNumKey='0024180004' 
Update TransactionsMovs SET SubNumID='5253418' where SubNumId='30143639F809E880000003AA' and ItemNumKey='055270490-32-30' 
Update TransactionsMovs SET SubNumID='5253417' where SubNumId='30140BA4EC4833C00000008C' and CustNumKey='0022870002' 
+1

您正在更新具有不同字段的不同密鑰,爲什麼要將它解析爲1個查詢?那有什麼好處? –

+0

你不能..... –

+0

嘗試用例... – Nithin

回答

1

是否要減少數據庫往返行程? 如果是的話,你可以圍繞查詢開始結束;

BEGIN 
    Update TransactionsMovs SET SubNumId='5253420' where SubNumId='3014362178619A000000033F' and CustNumKey='0024180002'; 
    Update TransactionsMovs SET SubNumID='5253416' where SubNumId='301402662C2DC5800000017C' and CustNumKey='0024180003'; 
    Update TransactionsMovs SET SubNumID='5253419' where SubNumId='301402662C42F480000036AF' and CustNumKey='0024180004'; 
    Update TransactionsMovs SET SubNumID='5253418' where SubNumId='30143639F809E880000003AA' and ItemNumKey='055270490-32-30'; 
    Update TransactionsMovs SET SubNumID='5253417' where SubNumId='30140BA4EC4833C00000008C' and CustNumKey='0022870002'; 
END; 
0

您正在嘗試實現類似這樣的操作,將所有條件與一個UPDATE語句組合在一起。

Update TransactionsMovs 
SET SubNumId = CASE WHEN SubNumId='3014362178619A000000033F' AND CustNumKey='0024180002' THEN '5253420' 
         WHEN SubNumId='301402662C2DC5800000017C' AND CustNumKey='0024180003' THEN '5253416' 
         WHEN SubNumId='301402662C42F480000036AF' AND CustNumKey='0024180004' THEN '5253419' 
         WHEN SubNumId='30143639F809E880000003AA' AND ItemNumKey='055270490-32-30' THEN '5253418' 
         WHEN SubNumId='30140BA4EC4833C00000008C' AND CustNumKey='0022870002' THEN '5253417'   
      END