2013-10-09 28 views
1

我有一個項目列表,需要根據SQL Server 2005環境中的唯一標識進行更新。我想知道編寫腳本來更新這些項目的最佳方式。SQL更新具有多個值的多行

我知道我可以簡單地通過編寫多個查詢,如更新列:

UPDATE myTable 
SET HelpLink = 'newLink' 
WHERE ID = 5 

UPDATE myTable 
SET HelpLink = 'newLink2' 
WHERE ID = 6 

是否有這樣做,而不必重複約20次以上更新的任何其他方式?重複上述操作往往會產生一個非常醜陋的更新腳本。

注意:我有一大批項目,我將通過其唯一ID進行更新,這些項目不是來自數據庫表格。

+1

創建你的更新表,然後在你的'UPDATE'中加入它。 – Kermit

+0

只是製作一個表,做20個插入,然後更新我的表,甚至比編寫20個更新語句更好?似乎沒有太大的改進。 – ImGreg

回答

1

我發現,你可以用這似乎把事情簡單化了不少case語句。這使我可以將多個項目添加到單個查詢中。

UPDATE [MyTable] 
SET HelpLink = CASE ID 
     WHEN 2 THEN 'MKSDefectsChart.png' 
     WHEN 6 THEN 'EPMRisks.png' 
     WHEN 7 THEN 'DCTSHardwareChanges.png' 
     ELSE NULL 
    END 
WHERE ID IN (2, 6, 7) 
0

你總是可以從另一個表更新像

update myTable 
set HelpLink = myOtherTable.HelpLink 
from myOtherTable 
where myTable.[ID] = myOtherTable.[ID] 

你必須創建其他表雖然