使用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. 如何改写WebApi部分默认规则

    为什么要改 最近公司在推广SOA框架,第一次正经接触这种技术(之前也有但还是忽略掉吧),感觉挺好,就想自己也折腾一下,实现一个简单的SOA框架 用过mvc进行开发,印象之中WebApi和Mvc好像是一 ...

  2. Popular Cows (POJ No.2186)

    Description Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= ...

  3. How can I save HICON to an .ico file

    refer:http://stackoverflow.com/questions/2289894/how-can-i-save-hicon-to-an-ico-file answer1: #inclu ...

  4. My SQL 常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...

  5. iOS学习之懒加载

    懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,其实是重写getter方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 使用懒 ...

  6. uC/OS 的任务调度解析 (转)

    uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...

  7. AES CBC 128的实现

    原由 AES已经变成目前对称加密中最流行算法之一,AES可以使用128.192.和256位密钥,并且用128位分组加密和解密数据. 项目中需要使用AES对密码信息进行加密,由嵌入式设备使用C语言进行加 ...

  8. Netbeans 注释模板配置

    工具->模板->展开Java 选中Java类->在编辑器中打开 修改如下: <#if package?? && package != ""& ...

  9. Abstract Factory模式的几个要点

    1.如果没有应对“多系列对象构建”的需求变化,则没有必要使用Abstract Factory模式.这时候使用简单的静态工厂完全可以.2.“系列对象”指的是这些对象之间有相互依赖.或作用的关系3.Abs ...

  10. wpf只运行一个实例

    原文:wpf只运行一个实例 在winform下,只运行一个实例只需这样就可以: 1. 首先要添加如下的namespace: using System.Threading; 2. 修改系统Main函数, ...