首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

用游标批量更改数据的有关问题

2012-02-22 
用游标批量更改数据的问题两个表,我需要用一个表去更新另外一个表,但是两个表的结构不一样,slzk_gk_spbmk_

用游标批量更改数据的问题
两个表,我需要用一个表去更新另外一个表,但是两个表的结构不一样,
slzk_gk_spbmk_mod中字段如下:xgzd,yz,xz,sfzh
slzk_gk_spbmk中部分字段如下:sfzh,xm,zzmm,yjdz...
slzk_gk_spbmk_mod中的xgzd存储的时要在slzk_gk_spbmk中修改的字段,比如xgzd=xm,xz是要更新后的值,yz是更新前的值,例如:
slzk_gk_spbmk_mod
xgzd yz xz sfzh
xm 张三 张四 513901199406180240
slzk_gk_spbmk
sfzh xm zzmm yjdz
513901199406180240 张三 共青团员 四川成都
更新后:
sfzh xm zzmm yjdz
513901199406180240 张四 共青团员 四川成都
我写的如下,始终不对,麻烦各位给个方法:
use slzk_zk
declare MyCur cursor
for select xgzd,xz,sfzh from slzk_gk_spbmk_mod
open Mycur
declare @spbmk_zd char(10)
declare @spbmk_xz char(254)
declare @spbmk_sfzh char(18)
fetch from Mycur into @spbmk_zd,@spbmk_xz,@spbmk_sfzh
while @@fetch_status=0
begin
  Set @spbmk_zd=replace(@spbmk_zd,' ','')
  print @spbmk_zd print @spbmk_sfzh
  update slzk_gk_spbmk set @spbmk_zd=@spbmk_xz where sfzh=@spbmk_sfzh
  fetch next from Mycur into @spbmk_zd,@spbmk_xz,@spbmk_sfzh
end
close Mycur
deallocate Mycur

[解决办法]
你的意思是不是就是根據兩個表的身份證號關聯,用slzk_gk_spbmk_mod表的xz去更新slzk_gk_spbmk表的xm嘛,不用遊標就可以.直接寫

SQL code
update slzk_gk_spbmkset xm=repalce(a.xz,' ','')from slzk_gk_spbmk_mod as a,slzk_gk_spbmk as bwhere a.sfzh=b.sfzh 

热点排行