怎么update多个表的值

如何update多个表的值
表 tpm 

cid N1 N2 N3
1 NULL 3 1
2 NULL 2 0

表 SNO

cid CNO
1 5
2 1

我用这个语句 红色部分总是出错:

update tpm set N1=N2-N3,CNO=(N2-N3)
from
SNO S join tpm t on S.MATNR=t.MATNR
where (N2-N3)>=CNO




------解决方案--------------------
没办法一次更新多个表的值,只能一个表一个表的更新
------解决方案--------------------
update tpm set N1=N2-N3
from
SNO S join tpm t on S.cid=t.cid
where (t.N2-t.N3)>=S.CNO

------解决方案--------------------
引用:
Quote: 引用:

on S.MATNR=t.MATNR你的表没这列
额 弄错了 是 S.cid=t.cid,另外CNO是SNO表里的,难道不能一次更新2个表的值吗?
delete和update同一时刻只能影响一个表,不能同时update,必须分开
------解决方案--------------------

update s  set  s.CNO=(t.N2-t.N3)
from SNO S 
join tpm t on S.MATNR=t.MATNR
where (N2-N3)>=CNO

------解决方案--------------------
不能一次更新2个表的,只能一个一个更新!
------解决方案--------------------
要同步用transaction,update语句不能一次更新两个表
------解决方案--------------------
使用tran建立事务
就可以保证同时更新两个表

begin tran
update tb1

update tb2
commit