Должны ли мы использовать имя Alise в запросе обновления в SQL Server? - PullRequest
0 голосов
/ 14 мая 2019
Update table1 t1
set t1. col1='op'
where t1.col2 in (select t2.col2 from table2 t2 where t1.col3 = t2.col3) ;

Приведенный выше запрос работает в Oracle, но не на сервере SQL.

Ошибка генерирования: неверный синтаксис рядом с t1.

1 Ответ

2 голосов
/ 14 мая 2019

Нельзя установить псевдоним в предложении UPDATE в SQL Server. Правильный синтаксис - удалить псевдоним или псевдоним объекта в FROM:

--Without Alias
UPDATE table1
SET col1 = 'op'
WHERE EXISTS (SELECT 1
              FROM Table2 AS T2
              WHERE T2.col3 = table1.col3
                AND T2.col2 = table1.col2);
--FROM and JOIN
UPDATE T1
SET col1 = 'op'
FROM Table1 AS T1
     JOIN Table2 AS T2 ON T1.Col2 = T2.Col2
                      AND T1.Col3 = T2.Col3;

--With Aliases
UPDATE T1
SET col1 = 'op'
FROM Table1 AS T1
WHERE EXISTS (SELECT 1
              FROM Table2 AS T2
              WHERE T2.col3 = table1.col3
                AND T2.col2 = table1.col2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...