Мне интересно, является ли это допустимым запросом:
UPDATE table
SET ID = 111111259
WHERE ID = 2555
AND SET ID = 111111261
WHERE ID = 2724
AND SET ID = 111111263
WHERE ID = 2021
AND SET ID = 111111264
WHERE ID = 2017
Мне интересно, является ли это допустимым запросом:
UPDATE table
SET ID = 111111259
WHERE ID = 2555
AND SET ID = 111111261
WHERE ID = 2724
AND SET ID = 111111263
WHERE ID = 2021
AND SET ID = 111111264
WHERE ID = 2017
НЕТ!
Вам нужно будет обрабатывать их отдельно
Update [table]
Set ID = 111111259
WHERE ID = 2555
Update [table]
Set ID = 111111261
WHERE ID = 2724
--...
Лучший вариант - это несколько обновлений.
В качестве альтернативы вы можете сделать следующее, но рекомендуется НЕ:
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)
Нет. Это неверный запрос. У вас может быть только один оператор SET с несколькими полями, однако, также предложение WHERE
update table1 set field1=value1, field2=value2, field3=value3 where filed4=value5
Нет, вот как вы это делаете:
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
Нет, вам нужно будет создать отдельный запрос для каждого обновления.
Нет. Вам придется делать отдельные обновления:
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
так как sql те все строки, которые вы хотите, чтобы сделать, я бы сделал вам код вроде этого
Внутри управления Sql тоже выполняется запрос, и это должно работать.
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
Вы также можете использовать случай, например:
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
Используйте строку терминатора запроса и установите это в параметрах вашего клиентского приложения SQL. Я использую GO в качестве терминатора запросов.
Ваш SQL будет выглядеть следующим образом:
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
Это позволит вам сделать Ctrl + A и сразу запустить все строки.
Терминатор строки сообщает клиенту SQL, что инструкция обновления завершена, и перейти к следующей строке и обработать следующий оператор.
Надеюсь, что поможет