powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как обновить несколько строк одним запросом MS SQL?
9 сообщений из 9, страница 1 из 1
Как обновить несколько строк одним запросом MS SQL?
    #39944124
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Есть таблица с двумя строчками:
id Lat Lng
1 55.75393 37.620795
2 55.75393 37.620695

Мне нужно обновить или одну строку или обе одновременно, причем в каждом случае поля Lat и Lng обновляются вместе. Написал запрос T-SQL:
Код: sql
1.
INSERT INTO MyGMap (id, Lat, Lng) VALUES (1,'1','2'), (2,'3','4') ON DUPLICATE KEY UPDATE id = VALUES(id), Lat=VALUES(Lat), Lng=VALUES(Lng)



Выдает ошибку, что "неверный синтаксис около ON", а так же подчеркивает VALUES, id, Lat и Lng. Подскажите, что неправильно?
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39944126
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eliasum
Выдает ошибку, что "неверный синтаксис около ON", а так же подчеркивает VALUES, id, Lat и Lng. Подскажите, что неправильно?
Это вы в каком справочнике по T-SQL нашли?
Какой ещё ON DUPLICATE KEY?

Вот справочнико по UPDATE: https://docs.microsoft.com/ru-ru/sql/t-sql/queries/update-transact-sql?view=sql-server-ver15
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39944154
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Это вы в каком справочнике по T-SQL нашли?
Какой ещё ON DUPLICATE KEY?
Это в MySQL
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39944158
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracs
alexeyvg
Это вы в каком справочнике по T-SQL нашли?
Какой ещё ON DUPLICATE KEY?
Это в MySQL
Хм, в заголовке вопроса MS SQL, в тексте T-SQL, при чём тут MySQL?
Автор, может, думает, что синтаксис для всех СУБД одинаковый?
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39944194
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, нет нет, мне нужен именно T-SQL
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39944197
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eliasum
alexeyvg, нет нет, мне нужен именно T-SQL
Тогда читайте про синтаксис UPDATE в документации (ссылку я дал).

В вашем случае запрос будет примерно такой:
Код: sql
1.
2.
3.
4.
UPDATE m
SET Lat = t.Lat, Lng = t.Lng
from MyGMap as m
	join (VALUES (1,'1','2'), (2,'3','4')) as t(id, Lat, Lng) ON t.id = m.id
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39945266
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, спасибо!
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39945304
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вангую, что ТСу надо либо вставить строки, либо, при наличии указанного id, обновить - т.е. ему нужен merge.
...
Рейтинг: 0 / 0
Как обновить несколько строк одним запросом MS SQL?
    #39945342
eliasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение такое:
Код: sql
1.
2.
3.
4.
UPDATE MyGMAP
SET Lat = CASE ID WHEN 1 THEN '1' WHEN 2 THEN '3' END,
    Lng = CASE ID WHEN 1 THEN '2' WHEN 2 THEN '4' END
WHERE ID IN (1, 2)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как обновить несколько строк одним запросом MS SQL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]