网上很多关于实现UPDATE FROM 的方法,但是看来只能是在记录数惟一的情况下。例如:
UPDATE tablea a
SET a.fieldforupdate = (SELECT b.fieldsource FROM tableb b
WHERE a.keyfield = b.keyfield)
WHERE EXISTS (SELECT b.fieldsource FROM tableb b
WHERE a.keyfield = b.keyfield)但是我要一次能够更新多条记录,如何简单实现?在MSSQL中,UPDATE FROM能够更新多条记录的!
UPDATE tablea a
SET a.fieldforupdate = (SELECT b.fieldsource FROM tableb b
WHERE a.keyfield = b.keyfield)
WHERE EXISTS (SELECT b.fieldsource FROM tableb b
WHERE a.keyfield = b.keyfield)但是我要一次能够更新多条记录,如何简单实现?在MSSQL中,UPDATE FROM能够更新多条记录的!
解决方案 »
- 关于oracle内存数据库timesten的求教!!!
- 请教 oracle11G 企业管理怎么打开
- Oracle中触发器调用带参的存储过程,old与new应用,关于日志的操作,求解答!
- oracle创建用户,但在方案中没有对应的显示
- 新人问题,用delphi ado连接oracle,一定要装oracle客户端麽?
- CBO 基于成本的优化器
- 在oracle中如何加密自己写的存储过程?
- 有几个传入参数,想当特定的几个参数不为null时,才更新其他几个参数,怎么办?
- 求救,急!存储过程问题
- plsql developer 关闭的时候未响应
- 很简单的问题,各位大虾帮帮忙, 您看一眼就能帮小弟解决问题
- SQL语句多加一个中文字符就出错???
SET a.fieldforupdate = (SELECT b.fieldsource FROM tableb b
WHERE a.keyfield = b.keyfield)
这样是可以一次更新多条记录的。
update bi_track a set (a.d_attr4,a.d_attr5)=(select b.bi_level,b.bi_adjust_code from bi_track b where b.bi_track_id='DBI_ADD_000001')
where a.bi_track_id='DBI_ADD_000001' //带上条件
你可以试试,注意 rowid