sql这条语句那里错?

来源:百度知道 编辑:UC知道 时间:2024/04/29 04:58:44
update Media as a,CartoonUrl as b set a.CName = '111',a.CIntro = '1111',a.CImage = 'asd',a.CSum = '100',b.CAddress = 'asdsad' where a.Cid = '1001' and b.Cid = '1001'
分两条当然没问题!
问题我现在是想两个表一起更新

我不知道是否可以一次更新两个表,不过你写成两个语句,分两次更新应该不出问题:
update Media set CName = '111',CIntro = '1111',CImage = 'asd',CSum = '100' where Cid = '1001'
update CartoonUrl set CAddress = 'asdsad' where Cid = '1001'

补充:我用过的数据库都不支持两个表同时更新,不知道你的数据库是否支持这样的语法。不过即使支持也建议你不要这样做,程序员的一生会面临无数的数据库,而且你的同一个程序也可能面临以后更换数据库,要是数据库更换以后程序无需修改或者少量修改就能执行,这种能力会让你的程序很有生命力。

为了解决同步更新的问题,一般是通过事务来实现,在两条更新语句之前执行一个BEGIN WORK的SQL,两条语句均提交,并且没有错误返回的时侯执行一个COMMIT WORK,这时侯数据库才真正更新。如果中途异常推出,或者程序检测到需要取消的时侯发出回滚指令可以让所有的数据库修改全部取消。

更新语句好像一次只能针对一个表