2011-06-22 8 views

Odpowiedz

29

NIE!

Musisz obsłużyć tych indywidualnie

Update [table] 
Set ID = 111111259 
WHERE ID = 2555 

Update [table] 
Set ID = 111111261 
WHERE ID = 2724 

--... 
3

Nie, trzeba by utworzyć kwerendę oddzielna dla każdej aktualizacji.

4

Nope, to jak to zrobić:

UPDATE table SET ID = 111111259 WHERE ID = 2555 

UPDATE table SET ID = 111111261 WHERE ID = 2724 

UPDATE table SET ID = 111111263 WHERE ID = 2021 

UPDATE table SET ID = 111111264 WHERE ID = 2017 
2

nr Musisz zrobić osobne aktualizacje:

UPDATE table 
SET ID = 111111259 
WHERE ID = 2555 

UPDATE table 
SET ID = 111111261 
WHERE ID = 2724 

UPDATE table 
SET ID = 111111263 
WHERE ID = 2021 

UPDATE table 
SET ID = 111111264 
WHERE ID = 2017 
8

Nie, to nie jest ważne zapytania. Można mieć tylko jedną instrukcję SET, z wielu dziedzin, jednak jeden WHERE oraz

update table1 set field1=value1, field2=value2, field3=value3 where filed4=value5 
2

od sql te wszystkie linie, które mają to robić, zrobiłbym jesteś kod jak THISE

Wewnątrz was również zarządzanie sql wykonaj kwerendę i to powinno działać.

UPDATE table 
SET ID = 111111259 WHERE ID = 2555  

UPDATE table 
SET ID = 111111261 WHERE ID = 2724 

UPDATE table 
SET ID = 111111263 WHERE ID = 2021 

UPDATE table 
SET ID = 111111264 WHERE ID = 2017 
32

Najlepsza opcja to wiele aktualizacji.

Alternatywnie można wykonać następujące czynności, ale jest NIE zalecane:

UPDATE table 
SET ID = CASE WHEN ID = 2555 THEN 111111259 
       WHEN ID = 2724 THEN 111111261 
       WHEN ID = 2021 THEN 111111263 
       WHEN ID = 2017 THEN 111111264 
     END 
WHERE ID IN (2555,2724,2021,2017) 
+1

nice one + 1. Czasami nie jest to najlepszy skrypt, który zostanie nagrodzony. –

+8

Jeśli mój scenariusz pomógł komuś rozwiązać swój problem lub nauczyć się czegoś, to jestem już nagrodzony! – niktrs

-1

Zastosowanie terminator ciąg kwerendy i ustawić to w opcjach aplikacji klienckiej SQL. Używam GO jako terminatora zapytania.

Twój SQL wyglądałby tak;

UPDATE table SET ID = 111111259 WHERE ID = 2555 GO 
UPDATE table SET ID = 111111261 WHERE ID = 2724 GO 
UPDATE table SET ID = 111111263 WHERE ID = 2021 GO 
UPDATE table SET ID = 111111264 WHERE ID = 2017 GO 

To pozwoli ci wykonać Ctrl + A i uruchomić wszystkie linie naraz.

Terminator znaków mówi klientowi SQL, że instrukcja aktualizacji jest zakończona i przechodzi do następnej linii i przetwarza następną instrukcję.

nadzieję, że pomoże

+0

'GO' nie jest prawidłowym terminatorem SQL. Separator instrukcji w języku SQL (język zapytań) to ';'.'GO' nie jest częścią standardu SQL ani nie jest dozwolone dla DB2 (jest używane tylko przez niektóre narzędzia Microsoft ** ** do ograniczania instrukcji) –

+0

Większość edytorów tekstu SQL, takich jak winsql, SQL SSMS lub MySQL Workbench, umożliwia zdefiniowanie przez użytkownika terminatory. Mój jest GO. Dzięki za wkład. – stevenb123

2

Można również użyć wtedy sprawę tak:

UPDATE table 
SET ID = case 

when ID = 2555 then 111111259 

when ID = 2724 then 111111261 

when ID = 2021 then 111111263 

when ID = 2017 then 111111264 

else ID 
end 
0

Nie trzeba obsłużyć każde oświadczenie oddzielnie ..

UPDATE table1 
Statement1; 
UPDATE table 1 
Statement2; 

I tak dalej

+0

... tak jak ktoś odpowiedział w 2011:/ –

+0

Po prostu wykonuję swoją pracę – pr0grammaniac

Powiązane problemy