Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jak napisać UPDATE SQL z aliasem tabeli w SQL Server 2008?


Mam bardzo prostą
UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;

To zapytanie działa dobrze w
Oracle
,
Derby
,
MySQL
- ale cierpi

awaria w SQL Server 2008

z następującym błędem:

„Msg 102, poziom 15, stan 1, wiersz 1 Niepoprawna składnia w pobliżu 'Q'.”

Jeśli usunę wszystkie wystąpienia aliasu „Q” z SQL, to działa.
Ale muszę użyć aliasu.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Składnia użycia aliasu w instrukcji aktualizacji na serwerze SQL jest następująca:
UPDATE Q
SET Q.TITLE = 'TEST'
FROM HOLD_TABLE Q
WHERE Q.ID = 101;

Jednak alias nie jest tutaj potrzebny.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zawsze możesz zastosować podejście

CTE
http://msdn.microsoft.com/en-u ... .aspx
(wspólne wyrażenie w tabeli).
;WITH updateCTE AS
( SELECT ID, TITLE
FROM HOLD_TABLE
WHERE ID = 101)UPDATE updateCTE
SET TITLE = 'TEST';

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się