Ответ 1
Синтаксис использования псевдонима в инструкции обновления на SQL Server выглядит следующим образом:
UPDATE Q
SET Q.TITLE = 'TEST'
FROM HOLD_TABLE Q
WHERE Q.ID = 101;
Здесь не обязательно здесь использовать псевдоним.
У меня очень простой UPDATE SQL -
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Этот запрос отлично работает в Oracle, Derby, My-Sql, но он не работает на SQL Server 2008 со следующей ошибкой: "Msg 102, уровень 15, состояние 1, строка 1 Неверный синтаксис рядом с" Q".
Если я удалю все вхождения псевдонима "Q" из SQL, тогда он будет работать.
Но мне нужно использовать псевдоним.
Синтаксис использования псевдонима в инструкции обновления на SQL Server выглядит следующим образом:
UPDATE Q
SET Q.TITLE = 'TEST'
FROM HOLD_TABLE Q
WHERE Q.ID = 101;
Здесь не обязательно здесь использовать псевдоним.
Вы всегда можете использовать CTE, (общее табличное выражение), подход.
;WITH updateCTE AS
(
SELECT ID, TITLE
FROM HOLD_TABLE
WHERE ID = 101
)
UPDATE updateCTE
SET TITLE = 'TEST';