Eu tenho um muito básico UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Esta consulta funciona muito bem em Oracle
, Derby
, MySQL
- mas não no servidor SQL Server 2008
com o seguinte erro:
"Mensagem 102, Nível 15, Estado 1, Linha 1 Sintaxe incorreta perto de 'Q'."
Se eu remover todas as ocorrências do alias, "Q" do SQL, ele funcionará.
Mas eu preciso usar o alias.
sql
sql-server
sql-server-2008
sql-update
alias
javauser71
fonte
fonte
Respostas:
A sintaxe para usar um alias em uma instrução de atualização no SQL Server é a seguinte:
O alias não deve ser necessário aqui.
fonte
SET Q.TITLE = 'TEST' -- SELECT *
Você sempre pode usar a abordagem CTE (Expressão tabular comum).
fonte
Caso especial para o Postgres
Uma lista das soluções acima não funcionaria para mim. Então, aqui a solução para o Postgres
Como eu sou um incêndio minha consulta
UPDATE table Q SET Q.is_active = FALSE ,Q.is_delete = TRUE WHERE Q.name = 'XYZ';
Resultado: ERRO: a coluna "q" da relação "tabela" não existe
Solução Seria que você não precisa usar allis no valor de dados SET
fonte