@bsd9

Моожно ли написать UPDATE который будет обновлять значения идентификаторов?

Есть запрос такого вида:

SELECT SCHED.mList_id, ml.id, MD.mList_id, SM.mList_id
FROM [TEST].[dbo].[PATP_Schedule] AS SCHED
INNER JOIN TEST..PATP_MarshrutList AS ML
ON SCHED.mList_id = ML.id
INNER JOIN TEST..PATP_MarshrutData AS MD
ON MD.mList_id = ML.id
INNER JOIN [TEST].[dbo].[PATP_SubMarshrut] AS SM
ON ML.id = SM.mList_id

выводит значения идентификаторов таблиц. Помогите написать UPDATE, который обновит их, начиная например со значения 2000. Заранее спасибо. 1451f2c0c07a440ca1d19a5b327cdfd2.PNG
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
mahoho
@mahoho
Full stack certified PHP developer.
CTE вам в помощь:
WITH cteName as (
SELECT SCHED.mList_id, ml.id, MD.mList_id, SM.mList_id
FROM [TEST].[dbo].[PATP_Schedule] AS SCHED
INNER JOIN TEST..PATP_MarshrutList AS ML
ON SCHED.mList_id = ML.id
INNER JOIN TEST..PATP_MarshrutData AS MD
ON MD.mList_id = ML.id
INNER JOIN [TEST].[dbo].[PATP_SubMarshrut] AS SM
ON ML.id = SM.mList_id
)

UPDATE cteName set mList_id =  <someValue>;

И да, обновлять можно только одну таблицу. Если вам нужно обновлять вообще все поля, что там выбираются, оформите SELECT как VIEW и напишите для неё INSTEAD OF INSERT триггер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы