Saya memiliki yang sangat mendasar UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Query ini berjalan dengan baik di Oracle
, Derby
, MySQL
- tapi gagal di SQL server 2008
dengan error berikut:
"Msg 102, Level 15, Status 1, Baris 1 Sintaks salah dekat 'Q'."
Jika saya menghapus semua kemunculan alias, "Q" dari SQL maka itu berfungsi.
Tapi saya perlu menggunakan alias.
sql
sql-server
sql-server-2008
sql-update
alias
javauser71
sumber
sumber
Jawaban:
Sintaks untuk menggunakan alias dalam pernyataan pembaruan pada SQL Server adalah sebagai berikut:
Alias seharusnya tidak perlu di sini.
sumber
SET Q.TITLE = 'TEST' -- SELECT *
Anda selalu dapat menggunakan pendekatan CTE , (Common Tabular Expression).
sumber
Kasus khusus untuk Postgres
Daftar Solusi di atas tidak akan berfungsi Untuk saya. Jadi, inilah solusi untuk Postgres
Karena saya adalah api permintaan saya
UPDATE table Q SET Q.is_active = FALSE ,Q.is_delete = TRUE WHERE Q.name = 'XYZ';
Hasil: KESALAHAN: kolom "q" of relation "table" tidak ada
Solusi Anda tidak perlu menggunakan allis pada nilai data SET
sumber