表對表更新的問題:A,B兩表均有ID,FIELD1,FIELD2..字段,現在以A.ID=B.ID為條件用B表更新A表中的FIELD1,FIELD2,如何寫存儲

  • 主题发起人 主题发起人 zhousan
  • 开始时间 开始时间
Z

zhousan

Unregistered / Unconfirmed
GUEST, unregistred user!
表對表更新的問題:A,B兩表均有ID,FIELD1,FIELD2..字段,現在以A.ID=B.ID為條件用B表更新A表中的FIELD1,FIELD2,如何寫存儲過程? ( 积分: 50 )<br />如題
 
可以用触发器
 
兩表的數據均已經存在,本來我想用游標處理,但數據量太大了(總共一兩萬條,用游標的話超過一千條就會很慢),用觸發器行不通吧
 
update b
set a.field1=b.field1,a.field2=b.field2
from a,b
where a.id=b.id
 
來晚了﹐同樓上。
 
xgwzw,的方法用過,無法得到正確結果
 
xgwzw的方法可以啊,就是把b改成a:
update a
set a.field1=b.field1,a.field2=b.field2
from a,b
where a.id=b.id
 
update a
set a.field1=b.field1,a.field2=b.field2
from a,b
where a.id=b.id

可能要选择左连接或右连接啊

update a
set a.field1=b.field1,a.field2=b.field2
from a right(或left) join b
on a.id=b.id
 
我就是這樣寫的
========================
update DingDanMingXi
set pa=c.pa,pb=c.pb,pc=c.pc,pk=c.pk,pi=c.pi,pw=c.pw,yzzl=c.yzzl
from DingDanMingXi d,ChanPingZiLiao c
where d.cpbh=c.cpbh
========================
再執行
select d.ddmxxh,c.cpbh,d.cpbh,d.pa,c.pa
from DingDanMingXi d,ChanPingZiLiao c
where d.cpbh=c.cpbh
and d.pa<>c.pa
還有66條記錄
 
你的cpbh在 ChanPingZiLiao里唯一嘛?
 
。。。。暈啊。。CPBH不是唯一的。
那應該怎么處理呢
 
Update A set A.f1=B.f1,A.f2=B.f2 from B where A.id=B.id
 
典型设计问题.不说了!
 
to zhousan
是A的id不唯一还是B的id不唯一?
 
B中的ID不唯一,正在處理中。。按照xgwzw的方法應該可以。。
 
update A
set (a.field1, a.field2)=(SELECT b.field1, b.field2 FROM b where a.id=b.id)
 
多人接受答案了。
 
后退
顶部