ошибка из нескольких частей, хотя таблица существует - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь обновить записи из одной таблицы в другую в той же базе данных. Что я делаю неправильно? SQLMS2017 не нравится [dbo]. [TempSupplier3]. [Addaddress] в 4-й строке. Я пробовал разные варианты, включая псевдонимы. Таблица определенно существует, так как я могу выбрать ее и перетащить. Продолжать получать многокомпонентный идентификатор не может быть привязан.

UPDATE 
fds.Address
SET
fds.Address.addaddress = [dbo].[TempSupplier3].[addaddress] 
FROM 
 dbo.TempSupplier3 TS 
INNER JOIN 
fds.Address AS FA
    ON 
    TS.addshortname = FA.addShortName
WHERE
FA.addshortname = 'yes'

Ответы [ 3 ]

1 голос
/ 25 марта 2019

Вы используете псевдонимы для своих таблиц, но затем не используете псевдоним ...

Измените его на:

UPDATE FA
SET FA.addaddress = TS.[addaddress] 
FROM 
   dbo.TempSupplier3 TS 
INNER JOIN 
   fds.Address AS FA ON 
   TS.addshortname = FA.addShortName
WHERE
   FA.addshortname = 'yes'
1 голос
/ 25 марта 2019

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

UPDATE FA
SET addaddress = TS.[addaddress] 
FROM dbo.TempSupplier3 TS
INNER JOIN fds.Address AS FA
    ON TS.addshortname = FA.addShortName
WHERE
    FA.addshortname = 'yes';

Или, если вы хотите использовать полное имя таблицы везде, используйте это:

UPDATE fds.Address
SET addaddress = dbo.TempSupplier3.[addaddress] 
FROM dbo.TempSupplier3
INNER JOIN fds.Address
    ON dbo.TempSupplier3.addshortname = fds.Address.addShortName
WHERE
    fds.Address.addshortname = 'yes';
1 голос
/ 25 марта 2019

обновление с синтаксисом соединения будет таким: псевдонимы должны быть такими:

 UPDATE 
FA 
SET
FA.addaddress = ts .[addaddress] 
FROM 
 dbo.TempSupplier3 TS 
INNER JOIN 
 [Address] FA 
    ON 
    TS.addshortname = FA.addShortName
WHERE
FA.addshortname = 'yes'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...