Обновить значение столбца в одной таблице из столбца в другой таблице, где идентификаторы не совпадают - PullRequest
1 голос
/ 11 марта 2020

Я знаю, как это сделать, когда столбцы идентификаторов совпадают, я не знаю, как это сделать, когда они не совпадают. Мне нужно обновить значение в одной строке таблицы в одной базе данных значением столбца из другой базы данных. Они не имеют одинаковые идентификаторы.

UPDATE DevDatabase
SET DevDatabase.ReportData = TESTDatabase.ReportData
Where DevDatabase.SavedReportId = '0B6D01B7-D52E-4799-B809-DA375449AF30'
FROM TESTDatabase.[SavedReport] TEST
where TEST.SavedReportId =   '02F62AD5-7DA2-414D-873E-1ED6B922DB53'

Надеюсь, приведенный выше код, хотя и неправильный, показывает, что мне нужно.

Ответы [ 2 ]

4 голосов
/ 12 марта 2020

Использование подзапроса:

UPDATE DevDatabase.SavedReport
SET ReportData = (SELECT ReportData 
                 FROM TESTDatabase.[SavedReport] TEST 
                 WHERE TEST.SavedReportId = '02F62AD5-7DA2-414D-873E-1ED6B922DB53')
Where SavedReportId = '0B6D01B7-D52E-4799-B809-DA375449AF30'
1 голос
/ 12 марта 2020

Вы также можете использовать синтаксис update / join, как вы изначально предполагали:

  • в запросе должно быть только одно предложение WHERE

  • предложение update должно ссылаться на таблицу (или псевдоним), определенную в предложении from

Запрос:

UPDATE d
SET ReportData = t.ReportData
FROM DevDatabase.SavedReport d
JOIN TESTDatabase.[SavedReport] t 
    ON t.SavedReportId = '02F62AD5-7DA2-414D-873E-1ED6B922DB53'
WHERE d.SavedReportId = '0B6D01B7-D52E-4799-B809-DA375449AF30'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...