У меня есть очень простой UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Этот запрос работает отлично в Oracle
, Derby
, MySQL
- но он терпит неудачу в SQL Server 2008
с следующей ошибкой:
«Msg 102, Уровень 15, Состояние 1, Строка 1 Неверный синтаксис рядом с« Q ».»
Если я удаляю все вхождения псевдонима «Q» из SQL, тогда он работает.
Но мне нужно использовать псевдоним.
sql
sql-server
sql-server-2008
sql-update
alias
javauser71
источник
источник
Ответы:
Синтаксис использования псевдонима в операторе обновления на SQL Server выглядит следующим образом:
Псевдоним не должен быть здесь необходимым, хотя.
источник
SET Q.TITLE = 'TEST' -- SELECT *
Вы всегда можете использовать CTE (Common Tabular Expression), подход.
источник
Особый случай для Postgres
Список приведенных выше решений не будет работать для меня. Итак, вот решение для Postgres
Как я огонь мой запрос
UPDATE table Q SET Q.is_active = FALSE ,Q.is_delete = TRUE WHERE Q.name = 'XYZ';
Результат: ОШИБКА: столбец "q" отношения "таблица" не существует
Решение Было бы вам не нужно использовать Аллис на значение данных SET
источник