两个表,我需要用一个表去更新另外一个表,但是两个表的结构不一样,
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中字段如下: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
解决方案 »
- 着急!pb6.5编译的程序无法连接到sqlserver数据库
- 如何修改SQL 2005 数据库创建时间
- 程序如何区分差异备份和完全备份?
- 报表中要把相同的记录排成一列要怎么做?(邹建等高手快来啊)
- 在线等,关于在2003企业版系统下装sqlserver2005
- 在MS-DOS方式下,用lsql或osql为什么连不上SQL SERVER服务器?
- 如何嵌套查询????????急!!!!!!!!!!
- 急!请各位大哥帮忙看看
- 有没有高手知道方法限制Administrator用户的不使用或不可见某个表,如同对存储过程加密……,在线.
- 740分悬赏,能否在临时表中使用触发器?
- sqlserver2008数据库表数据备份还原
- 求简洁写法
set xm=repalce(a.xz,' ','')
from slzk_gk_spbmk_mod as a,slzk_gk_spbmk as b
where a.sfzh=b.sfzh
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,' ','')
exec('update slzk_gk_spbmk set ['+@spbmk_zd+']='''+@spbmk_xz+''' where sfzh='''+@spbmk_sfzh+'''')
--修改数据
if(@@error<>0 or @@rowcount=0)
begin
print @spbmk_sfzh
print @spbmk_zd
end
--出错打印身份证号和修改字段
fetch next from Mycur into @spbmk_zd,@spbmk_xz,@spbmk_sfzh
--下一条数据
end
close Mycur --关闭游标
deallocate Mycur--释放游标
没有人回复,分全部给你算了。