使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作。下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助。

  1. --开始事务
  2. BEGIN TRAN
  3. --不显示计数信息
  4. SET NOCOUNT ON
  5. DECLARE @ProjNo varchar(50),@CusNo varchar(50)
  6. --声明游标
  7. DECLARE CRMPSContact_cursor CURSOR FOR
  8. SELECT ProjNo
  9. FROM CRMPSContact
  10. WHERE ProjNo>0
  11. --打开游标
  12. OPEN CRMPSContact_cursor
  13. --取第一行的值给专案变量: @ProjNo
  14. FETCH NEXT FROM CRMPSContact_cursor
  15. INTO @ProjNo
  16. --取得客户号
  17. select @CusNoCusNo = CusNo
  18. from CRMPSProjectM
  19. where ProjNo = @ProjNo
  20. --得到CRMPSContact中某专案号对应的客户号
  21. update CRMPSContact
  22. set CusNo = @CusNo
  23. where ProjNo = @ProjNo
  24. --执行错误回滚
  25. if @@error!=0
  26. begin
  27. rollback tran
  28. return
  29. end
  30. --移动游标,其它所有行更新操作(当到结尾时退出)
  31. WHILE @@FETCH_STATUS = 0
  32. BEGIN
  33. --游标移到下一行
  34. FETCH NEXT FROM CRMPSContact_cursor
  35. INTO @ProjNo
  36. --取得客户号
  37. select @CusNoCusNo = CusNo
  38. from CRMPSProjectM
  39. where ProjNo = @ProjNo
  40. --得到CRMPSContact中某专案号对应的客户号
  41. update CRMPSContact
  42. set CusNo = @CusNo
  43. where ProjNo = @ProjNo
  44. --执行错误回滚
  45. if @@error!=0
  46. begin
  47. rollback tran
  48. return
  49. end
  50. END
  51. --提交所有变更
  52. COMMIT TRAN
  53. --关闭游标
  54. CLOSE CRMPSContact_cursor
  55. --释放游标
  56. DEALLOCATE CRMPSContact_cursor
  57. --恢复设置
  58. SET NOCOUNT OFF
  59. GO

使用游标循环进行SQL更新插入的SQL语句的更多相关文章

  1. mysql实战优化之五: 更新/插入优化 sql优化

    通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作).当读取者完成对表的操作的时候,锁就会 ...

  2. C# sql 批量插入数据库的语句

    //执行DataTable数据导入 public static int UpdateDt(string strConn, DataTable dt) { try { string tablaName ...

  3. hibernate通过SQL更新数据

    @Resource(name = "hibernateTemplate") public HibernateTemplate hibernateTemplate; /** * @T ...

  4. SQL存储过程+游标 循环批量()操作数据

    本人收集的,挺有用的 1. 利用游标循环更新.删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT * FROM dbo.M ...

  5. sql游标循环结果集

    我们知道游标是一种对结果集操作的神器,使用游标,可以很方便的循环结果集,并对结果集进行数据处理. 1.建表 CREATE TABLE [dbo].[Student]( ,) NOT NULL, ) N ...

  6. sql 游标循环当中重新赋值

    sql 游标循环当中的变量必须重新赋值不然变量的值就是前次循环的值

  7. sql 循环语句几种方式(变量循环,游标循环,事务)

    --第一   ) ,),Orders )) declare @n int,@rows int --select @rows=count(1) from pe_Orders select @rows = ...

  8. SQL SERVER循环遍历(普通循环和游标循环)

    1.首先需要一个测试表数据Student 2.普通循环 1)循环5次来修改学生表信息 --循环遍历修改记录--declare @i int   set @i=0while @i<5begin   ...

  9. sql server 存储过程的(包含事务)方法里面,采用游标循环,批量删除(修改)数据

    sqlserver 数据库 1.下面是完整的 在存储过程中 使用游标进行 循环删除的实例(包括存储过程中,事务的应用) 2.有问题的话,欢迎随时讨饶我,相信大家看下注释应该就能明白了,很简单的一个,小 ...

随机推荐

  1. ORACLE模拟临时文件、日志成员、口令文件丢失情况与恢复【weber出品】

    一.临时表空间文件.日志文件和口令文件都属于非关键性文件,因为这些文件丢失后并不会影响到整个数据库的完整性. 但是,当这些文件丢失后我们需要快速的找回这些文件.接下来我将模拟临时表空间文件.日志文件和 ...

  2. java泛型方法

    Tool.java package cn.stat.p9.fanxing.demo; public class Tool<QQ> {//不确定类型时可以用泛型 private QQ q; ...

  3. (五)JS学习笔记 - JQuery缓存机制

    历史背景 开发中常常因为方便,把状态标志都写到dom节点中,也就是HTMLElement,缺点: 循环引用 直接暴露数据,安全性? 增加一堆的自定义属性标签,对浏览器来说是没意义的 取数据的时候要对H ...

  4. 自定义 Preference Header 布局

    1. Preference Header 概述: 对于什么是 Preference Header,以及何时使用 Preference Header,请参考我的另一篇博文: 何时使用 Preferenc ...

  5. js分页算法

    function get_hs_page(cur_page, total_page) { var result = ""; for(var i = 1; i <= total ...

  6. javascript中的substr和substring

    1.substr 方法 返回一个从指定位置开始的指定长度的子字符串. stringvar.substr(start [, length ]) 参数: stringvar 必选项.  要提取子字符串的字 ...

  7. python修改txt文件内容

    ①以r模式打开文件并用readlines方法读入列表l中 ②修改相关行,直接用l[n]形式即可 ③关闭文件 ④以w方式打开文件,用writelines方法写入文件(覆盖文件内容) ⑤关闭文件 需要注意 ...

  8. [Flask Security]当不能通过认证的时候制定跳转

    Flask Security这个插件能对用户权限进行很好的控制. 通过三个model实现: User,存放用户数据 Role,存放角色数据 User_Role.存放用户角色信息 user_datast ...

  9. 用js 做大图轮播方法(一)

    //html部分 <div id="wrap"> <div id="slider"> <a target="_blank ...

  10. Codeforces 437E The Child and Polygon

    http://codeforces.com/problemset/problem/437/E 题意:求一个多边形划分成三角形的方案数 思路:区间dp,每次转移只从一个方向转移(L,R连线的某一侧),能 ...