项目中需要使用多表关联更新去同步数据,但是在使用sqlserver进行该操作时出现了一些问题,写了两个差不太多的sql,但是执行都报了语法错误:
update TABLEA a
set a.zd1 = b.zd2
from A a
inner join TABLEB b on a.xx = b.xx
和
update TABLEA a INNER JOIN TABLEB b on a.xx = b.xx
set a.zd1 = b.zd2
where
a.xx in (SELECT xx from TABLEB b)
结果都在第一行的TABLEA处报语法错误,在请教别人后,找到了解决方法,sql如下
update a
set a.zd1 = b.zd2
from TABLEA a
inner join TABLEB b on a.xx = b.xx
sql server的写法与mysql的关联更新不完全相同,不能完全用mysql写法,但是在网上查到的确实有用我上面两种写法运行成功的,没找到原因,记录下踩过的坑