0

看起来像一个简单的问题,但我无法在 MsSql 中得到我需要的东西,而我可以在 MySQL 和 Oracle 中轻松完成。

在 MySQL 中: UPDATE table_spec_data SET coverage=33 WHERE (specification_id, data_id) IN ( (247,1), (248,2), (249,3) );

在 Oracle 中: UPDATE table_spec_data SET coverage=33 WHERE (specification_id, data_id) IN ( SELECT 247,1 FROM DUAL UNION SELECT 248,2 FROM DUAL UNION SELECT 249,3 FROM DUAL );

有谁知道如何用MSSqlServer做到这一点?

4

1 回答 1

1

我认为您需要以艰难的方式做到这一点:

 UPDATE table_spec_data SET coverage=33 WHERE 
     (specification_id = 247 AND data_id = 1)
     OR (specification_id = 248 AND data_id = 2)
     OR (specification_id = 249 AND data_id = 3)
于 2013-09-27T00:34:48.113 回答