使用游标循环进行SQL更新插入的SQL语句
使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作。下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助。
- --开始事务
- BEGIN TRAN
- --不显示计数信息
- SET NOCOUNT ON
- DECLARE @ProjNo varchar(50),@CusNo varchar(50)
- --声明游标
- DECLARE CRMPSContact_cursor CURSOR FOR
- SELECT ProjNo
- FROM CRMPSContact
- WHERE ProjNo>0
- --打开游标
- OPEN CRMPSContact_cursor
- --取第一行的值给专案变量: @ProjNo
- FETCH NEXT FROM CRMPSContact_cursor
- INTO @ProjNo
- --取得客户号
- select @CusNoCusNo = CusNo
- from CRMPSProjectM
- where ProjNo = @ProjNo
- --得到CRMPSContact中某专案号对应的客户号
- update CRMPSContact
- set CusNo = @CusNo
- where ProjNo = @ProjNo
- --执行错误回滚
- if @@error!=0
- begin
- rollback tran
- return
- end
- --移动游标,其它所有行更新操作(当到结尾时退出)
- WHILE @@FETCH_STATUS = 0
- BEGIN
- --游标移到下一行
- FETCH NEXT FROM CRMPSContact_cursor
- INTO @ProjNo
- --取得客户号
- select @CusNoCusNo = CusNo
- from CRMPSProjectM
- where ProjNo = @ProjNo
- --得到CRMPSContact中某专案号对应的客户号
- update CRMPSContact
- set CusNo = @CusNo
- where ProjNo = @ProjNo
- --执行错误回滚
- if @@error!=0
- begin
- rollback tran
- return
- end
- END
- --提交所有变更
- COMMIT TRAN
- --关闭游标
- CLOSE CRMPSContact_cursor
- --释放游标
- DEALLOCATE CRMPSContact_cursor
- --恢复设置
- SET NOCOUNT OFF
- GO
使用游标循环进行SQL更新插入的SQL语句的更多相关文章
- mysql实战优化之五: 更新/插入优化 sql优化
通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作).当读取者完成对表的操作的时候,锁就会 ...
- C# sql 批量插入数据库的语句
//执行DataTable数据导入 public static int UpdateDt(string strConn, DataTable dt) { try { string tablaName ...
- hibernate通过SQL更新数据
@Resource(name = "hibernateTemplate") public HibernateTemplate hibernateTemplate; /** * @T ...
- SQL存储过程+游标 循环批量()操作数据
本人收集的,挺有用的 1. 利用游标循环更新.删除MemberAccount表中的数据 DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT * FROM dbo.M ...
- sql游标循环结果集
我们知道游标是一种对结果集操作的神器,使用游标,可以很方便的循环结果集,并对结果集进行数据处理. 1.建表 CREATE TABLE [dbo].[Student]( ,) NOT NULL, ) N ...
- sql 游标循环当中重新赋值
sql 游标循环当中的变量必须重新赋值不然变量的值就是前次循环的值
- sql 循环语句几种方式(变量循环,游标循环,事务)
--第一 ) ,),Orders )) declare @n int,@rows int --select @rows=count(1) from pe_Orders select @rows = ...
- SQL SERVER循环遍历(普通循环和游标循环)
1.首先需要一个测试表数据Student 2.普通循环 1)循环5次来修改学生表信息 --循环遍历修改记录--declare @i int set @i=0while @i<5begin ...
- sql server 存储过程的(包含事务)方法里面,采用游标循环,批量删除(修改)数据
sqlserver 数据库 1.下面是完整的 在存储过程中 使用游标进行 循环删除的实例(包括存储过程中,事务的应用) 2.有问题的话,欢迎随时讨饶我,相信大家看下注释应该就能明白了,很简单的一个,小 ...
随机推荐
- ORACLE模拟临时文件、日志成员、口令文件丢失情况与恢复【weber出品】
一.临时表空间文件.日志文件和口令文件都属于非关键性文件,因为这些文件丢失后并不会影响到整个数据库的完整性. 但是,当这些文件丢失后我们需要快速的找回这些文件.接下来我将模拟临时表空间文件.日志文件和 ...
- java泛型方法
Tool.java package cn.stat.p9.fanxing.demo; public class Tool<QQ> {//不确定类型时可以用泛型 private QQ q; ...
- (五)JS学习笔记 - JQuery缓存机制
历史背景 开发中常常因为方便,把状态标志都写到dom节点中,也就是HTMLElement,缺点: 循环引用 直接暴露数据,安全性? 增加一堆的自定义属性标签,对浏览器来说是没意义的 取数据的时候要对H ...
- 自定义 Preference Header 布局
1. Preference Header 概述: 对于什么是 Preference Header,以及何时使用 Preference Header,请参考我的另一篇博文: 何时使用 Preferenc ...
- js分页算法
function get_hs_page(cur_page, total_page) { var result = ""; for(var i = 1; i <= total ...
- javascript中的substr和substring
1.substr 方法 返回一个从指定位置开始的指定长度的子字符串. stringvar.substr(start [, length ]) 参数: stringvar 必选项. 要提取子字符串的字 ...
- python修改txt文件内容
①以r模式打开文件并用readlines方法读入列表l中 ②修改相关行,直接用l[n]形式即可 ③关闭文件 ④以w方式打开文件,用writelines方法写入文件(覆盖文件内容) ⑤关闭文件 需要注意 ...
- [Flask Security]当不能通过认证的时候制定跳转
Flask Security这个插件能对用户权限进行很好的控制. 通过三个model实现: User,存放用户数据 Role,存放角色数据 User_Role.存放用户角色信息 user_datast ...
- 用js 做大图轮播方法(一)
//html部分 <div id="wrap"> <div id="slider"> <a target="_blank ...
- Codeforces 437E The Child and Polygon
http://codeforces.com/problemset/problem/437/E 题意:求一个多边形划分成三角形的方案数 思路:区间dp,每次转移只从一个方向转移(L,R连线的某一侧),能 ...