关键字"AS"附近的语法不正确

1 t-sql sql-server syntax-error

我收到"关键字'AS'附近的语法不正确"错误,但我似乎无法找到什么不正确?

UPDATE tblMedlem AS M 
INNER JOIN tblNavn AS N ON M.fldNavnID = N.fldID 
SET N.fldNavn=@Navn
,   M.fldAdresse=@Adr
,   M.fldPostNr=@Post
,   M.fldBy=@By
,   M.fldTlf=@Tlf
,   M.fldEmail=@Mail
,   M.fldStrID=@StrID
,   M.fldStatusID=@StatusID 
WHERE M.fldID = @ID
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 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;
Run Code Online (Sandbox Code Playgroud)

但正如我在我的评论所说,你不能同时更新tblMedlem,并tblNavn用一个单一的UPDATE.

  • 我需要从tblNavn更新fldNavn(在tblMedlem中用fldNavnID中的ID表示),我还需要更新所有M字段. (2认同)
  • 然后你需要写两个`UPDATE`语句.同样,*UPDATE语句只能影响一个表*(除非您编写触发器来处理更新第二个表).哪个仍然是两个`UPDATE`语句. (2认同)