Попробуй обновить таблицу в SQL
Я пытаюсь обновить свою таблицу, используя низкий уровень запроса, но он продолжал давать мне ошибки. Пожалуйста, прочитайте рем, чтобы увидеть знать ошибки
UPDATE VM1DTA.DCIRPG CM --invalid columm name cm
SET ILCHDRNUM = --incorrect syntax near SET and =
(SELECT ILCHDRNUM FROM VM1DTA.DCIARG WHERE INCHDRNUM = CM.CHDRNUM);
COMMIT;
UPDATE dbo.DCIRPG CM --invalid columm name cm
SET ILPYCLT = --incorrect syntax near SET and =
(SELECT CLNTKEY
FROM dbo.DCIARG
WHERE CLNTKEY = CM.PAYCLT --the multipath CM.PAYCLT can't bound
AND SEQNUMB = 1
AND);
3 ответа
SQL Server не допускает псевдонимов в UPDATE
, Вам нужно использовать FROM
пункт:
UPDATE CM
SET ILCHDRNUM = --incorrect syntax near SET and =
(SELECT ILCHDRNUM FROM VM1DTA.DCIAPF WHERE INCHDRNUM = CM.CHDRNUM)
FROM VM1DTA.DCIRGPF CM;
UPDATE CM --invalid columm name cm
SET ILPYCLT = --incorrect syntax near SET and =
(SELECT CLNTKEY
FROM dbo.DCIARG
WHERE CLNTKEY = CM.PAYCLT AND
SEQNUMB = 1
)
FROM dbo.DCIRPG CM;
В качестве альтернативы:
UPDATE RPG
SET RPG.ILCHDRNUM = ARG.ILCHDRNUM
FROM VM1DTA.DCIRPG AS RPG
INNER JOIN VM1DTA.DCIARG AS ARG
ON RPG.CHDRNUM = ARG.INCHDRNUM;
UPDATE RPG
SET RPG.ILPYCLT = ARG.CLNTKEY
FROM dbo.DCIRPG AS RPG
INNER JOIN dbo.DCIARG AS ARG
ON RPG.PAYCLT = ARG.CLNTKEY
AND ARG.SEQNUMB = 1;
Кроме того, кто бы ни назвал эти таблицы и колонки, нужно отправиться в путь за сараем. Возможно несколько.
Вы можете попробовать со следующим
UPDATE CM
SET CM.ILCHDRNUM = DCI.ILCHDRNUM
from VM1DTA.DCIRPG CM
INNER JOIN VM1DTA.DCIARG DCI ON DCI.INCHDRNUM = CM.CHDRNUM
и второй запрос
UPDATE CM
SET CM.ILPYCLT = DCI.CLNTKEY
FROM dbo.DCIRPG CM
INNER JOIN dbo.DCIARG DCI
ON DCI.CLNTKEY = CM.PAYCLT
AND DCI.SEQNUMB = 1