使用多个SET参数更新表

时间:2014-12-15 15:49:14

标签: sql tsql

我已经获得了对表格所做的更改列表。我想知道如何在一个脚本中进行所有更改...我已经尝试了以下

UPDATE tableA
SET col1 = 'somedata' WHERE col2 = 'somereference'
SET col1 = 'someotherdata' WHERE col2 = 'someotherreference'
SET col1 = 'evenmoredata' WHERE col2 = 'anotherreference'

但这不起作用。我是否可以使用特定的语法来实现这一目标,或者我坚持这样做: -

UPDATE tableA
SET col1 = 'somedata' WHERE col2 = 'somereference'

UPDATE tableA
SET col1 = 'someotherdata' WHERE col2 = 'someotherreference'

我想做的每一项改变?

1 个答案:

答案 0 :(得分:1)

在单一集合语句中使用case语句:

UPDATE tableA
SET col1 = case col2
    when 'somereference' then 'somedata'
    when 'someotherreference' then 'someotherdata'
    when 'anotherreference' then 'evenmoredata'
    else col1
    end

最好把原始值的默认值包含在你使用mis-fires的where子句中(无论如何你应该使用where子句,否则你将更新所有行)