我可以在一个语句中的各个字段上更新具有不同值的多行吗?

时间:2010-11-09 05:12:56

标签: sql sql-server

  

可能重复:
  Is it possible to perform multiple updates with a single UPDATE SQL statement?

我想实现类似于多个INSERT行的东西,但这次使用UPDATE语句。

假设使用insert,可以:

 INSERT INTO table VALUES(
   ('value1','other_value1','row1'),
   ('value2','other_value2','row2'),
   ('value3','other_value3','row3'),
 );

我如何使用UPDATE做同样的事情?

1 个答案:

答案 0 :(得分:1)

我不知道你想要什么。如果您想要更好的答案,那么请提供实际数据,对您想要做的事情的解释,以及在您想要完成后完成数据的示例输出。

我会猜测MERGE可能会为你做这个伎俩。例如:

insert into T values 
  ('value1','other3','abcdef',144),
  ('value2','other4','abcdefg',244),
  ('value3','other3','abcdefgh',344),
  ('value4','other4','abcdefghi',444);

merge into T using (values 
  ('value1','other3',144),
  ('value3','other7',344),
  ('value4','other4',444)
) as V(v,o,i)
on T.keyVal = V.v
when matched then update 
  set other = o, num = i;
go

select * from T;