使用内部联接更新,从两个表更新2列

ije*_*efr 3 sql sql-server sql-update

这是我在sql server 2008中的查询 -

    UPDATE a 
       SET a.col2 = 'new', 
           a.col3 = 'www.google.com', 
           b.col1 = '10'
      FROM table a 
INNER JOIN table b ON a.col1 = b.col1 
     WHERE a.col1 = 7
Run Code Online (Sandbox Code Playgroud)

它崩溃说"无效的列名b.col1."

我该如何工作?

SQL*_*ace 9

您一次只能更新1个表

您需要发出2个更新语句

UPDATE a SET a.col2='new', a.col3='www.google.com'
FROM tablea a INNER JOIN tableb  b ON a.col1 = b.col1
WHERE a.col1=7

UPDATE b SET b.col1='10' 
FROM tablea a INNER JOIN tableb b ON a.col1 = b.col1
WHERE a.col1=7
Run Code Online (Sandbox Code Playgroud)