2015-11-10 9 views

Odpowiedz

14

Można użyć tabeli pochodzącą:

update t set 
    value = a.value 
from Table as t 
    inner join (values 
     (22, 2), 
     (55, 5), 
     (99, 9) 
    ) as a(id, value) on a.id = t.id 

Dla mnie jest to najbardziej elegancki sposób to zrobić i to jest również łatwo EXTANDABLE (możesz dodać więcej kolumn, jeśli chcesz)

1

Tak, ale nie tak jak trzeba:

UPDATE Table 
SET value=case when id=2 then 22 when id=5 then 55 when id=9 then 99 end 
WHERE id in (2,5,9) 

Jeśli musisz to zrobić dla dużej liczby klatek/zapisów, byłbyś lepiej po prostu wydając kilka dedykowanych update zapytaniami .

0

użycie wyrażenia CASE wybrał wartość aktualizacji:

UPDATE Table SET value = case id when 2 then 22 
           when 5 then 55 
           when 9 then 99 
         end 
WHERE id IN (2,5,9) 
Powiązane problemy