SQL更新具有多个值的多行

时间:2013-10-09 14:42:09

标签: sql sql-server-2005 sql-update

我有一个项目列表,我需要根据它们在SQL Server 2005环境中的唯一ID进行更新。我想知道编写脚本以更新这些项目的最佳方法是什么。

我知道我可以通过编写多个查询来简单地更新列,例如:

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

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

有没有其他方法可以做到这一点,而不必重复上述更新大约20次?重复上述操作往往会产生一个非常难看的更新脚本。

注意:我有一大堆项目,我将按其唯一ID进行更新,这些项目不是来自数据库表。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

您可以随时从其他表格更新,例如

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

你必须创建其他表格