2012-06-20 4 views
1

Я получаю «Неправильный синтаксис рядом с ключевым словом« AS », но я не могу найти что-то неправильно?Неверный синтаксис рядом с ключевым словом «AS»

UPDATE tblMedlem AS M 
INNER JOIN tblNavn AS N ON M.fldNavnID = N.fldID 
SET [email protected] 
, [email protected] 
, [email protected] 
, [email protected] 
, [email protected] 
, [email protected] 
, [email protected] 
, [email protected] 
WHERE M.fldID = @ID 
+6

Ваше обновление может влиять только на одну таблицу в любое время. Ваш раздел 'SET', похоже, пытается повлиять на N и M. Можете ли вы объяснить, какую таблицу вы пытаетесь обновить здесь? –

ответ

5

Возможно, что вы имели в виду был:

UPDATE M 
SET 
-- N.fldNavn = @Navn -- not legal! 
    M.fldAdresse = @Adr, 
    M.fldPostNr = @Post, 
    M.fldBy = @By, 
    M.fldTlf = @Tlf, 
    M.fldEmail = @Mail, 
    M.fldStrID = @StrID, 
    M.fldStatusID = @StatusID 
FROM dbo.tblMedlem AS M 
INNER JOIN dbo.tblNavn AS N 
ON M.fldNavnID = N.fldID 
WHERE M.fldID = @ID; 

Но, как я предложил в мой комментарий, вы не можете обновить как tblMedlem и tblNavn с одним UPDATE.

+2

Мне нужно обновить как fldNavn от tblNavn, (который представлен в tblMedlem с идентификатором в файле fldNavnID), и мне также нужно обновить все поля M. –

+2

Затем вам нужно написать два оператора 'UPDATE'. Опять же, * оператор UPDATE может влиять только на одну таблицу * (если вы не напишете триггер для обработки второй таблицы). Который все равно будет два утверждения 'UPDATE'. –

Смежные вопросы