mssql 使用游标遍历方式批量update更新数据

php中文网
发布: 2016-06-07 17:47:18
原创
2271人浏览过

mssql 使用游标遍历方式批量update更新数据
/*
  --1.创建测试表 
  create TABLE Table1 
  ( 
  a varchar(10), 
  b varchar(10), 
  c varchar(10), 
  CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
  ( 
  a ASC 
  ) 
  ) ON [PRIMARY] 

  create TABLE Table2 
  ( 
  a varchar(10), 
  c varchar(10), 
  CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED 
  ( 
  a ASC 
  ) 
  ) ON [PRIMARY] 
  GO 
  --2.创建测试数据 
  Insert into Table1 values('赵','asds',null) 
  Insert into Table1 values('钱','asds','100') 
  Insert into Table1 values('孙','asds','80') 
  Insert into Table1 values('李','asds',null) 

  Insert into Table2 values('赵','90') 
  Insert into Table2 values('钱','100') 
  Insert into Table2 values('孙','80') 
  Insert into Table2 values('李','95') 
  GO 
  select * from Table1 

  --3.通过游标方式更新 
  declare @name varchar(10) 
  declare @score varchar(10) 
  declare mycursor cursor for select a from Table1 where c is null 
  open mycursor 
  fetch next from mycursor into @name 
  while(@@fetch_status = 0) 
  BEGIN 
  select @score=c from Table2 where  
  update Table1 set c = @score where a = @name 
  fetch next from mycursor into @name  
  END 
  close mycursor 
  deallocate mycursor 
  GO 
  --4.显示更新后的结果 
  select * from Table1 
  GO 
  --5.删除测试表 
  drop TABLE Table1 
  drop TABLE Table2 

  虽然用游标可以实现,但代码看起来很复杂
 
  Update是T-sql中再简单不过的语句了,update table set column=expression [where condition],我们都会用到。但update的用法不仅于此,真正在开发的时候,灵活恰当地使用update可以达到事半功倍的效果。 

  假定有表Table1(a,b,c)和Table2(a,c),现在Table1中有些记录字段c为null,要根据字段a在Table2中查找,取出字段a相等的字段c的值来更新Table1。一种常规的思路,通过游标遍历Table1中字段c为null的所有记录,在循环体内查找Table2并进行更新,即用游标Cursor的形式
  */

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号