第一种写法不行,
第二种可以,
Update 员工
Set 月薪=月薪+200
Where 部门号 in
(select 部门号 from 部门 where 部门名='产品部')

解决方案 »

  1.   

    为什么呢   这不是where条件后面  通过连接   找到了产品部的吗    然后更新的吗?
      

  2.   

    这个原因是语法格式是update tableName set xx=xx from table2 inner join ttupdate 员工
    set 月薪=月薪+200
    where 员工.部门号=部门.部门号 and 部门号='产品部';这里表名根本就没关联到部门表。最好是多看看SQL 语句的语法格式就知道了,上面的也不符合SQL规范
      

  3.   

    你一定要使用第一种写法,按下面改就好了:
    update a
    set a.月薪 = a.月薪 + 200
    from 员工 a
    join 部门 b
    on a.部门号 = b.部门号 and b.部门号='产品部';
      

  4.   

    这个是基于连接的Update语法,不是标准的SQL语法,
    只在 SQL Server 中可用,在其他数据库可能就不行。
      

  5.   

    前面的有点笔误,按下面的:
    update a
    set a.月薪 = a.月薪 + 200
    from 员工 a
        join 部门 b
        on a.部门号 = b.部门号 and b.部门名='产品部';