如何用sql语句批量更新一张表?
我有两个表
表:t1 (id, name)//明细表
表:t2 (id, bigname)//分类表
表t2中是个分类表,其中id,bigname是唯一值,现在要更新t1的name(有许多重复值,在表t2中有对应的唯一值)为t2的id,
sql:
update t1 set name=(select id from t2) where name=(select bigname from t2)
为什么更新不了,提示出错。
在线等!
问题点数:20、回复次数:4Top
1 楼pb_555(清华北大算啥)回复于 2004-12-04 11:44:52 得分 0
要是这样更新的话只能用游标
Top
2 楼myboll(jim)回复于 2004-12-04 12:00:52 得分 0
原因是你的表设计的不很合理
假如 大类B表结构为 id name
小类L表结构为 id rootid name (rootid 为 大类的 id )
这样就容易了
Top
3 楼clkun(我来是学习)回复于 2004-12-04 12:17:35 得分 0
可是我的t1中的name和t2中的bigname是多对一的关系呀。Top
4 楼xiaoyuehen(OH, NO~It's Unfair!)回复于 2004-12-04 12:25:46 得分 20
update t1 set name=(select id from t2) where name=(select bigname from t2)
可以更新, 不需要用游标.
参考联机帮助!!!!!!!!!!!!!
以下为参考
update t1 set [name] = b.id from [t1] A inner join [t2] b on a.[name] = b.[bigname]
注意你的 字段名 name 是关键字, 必须用 [], 这是一个好习惯Top




