使用游标循环进行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.有问题的话,欢迎随时讨饶我,相信大家看下注释应该就能明白了,很简单的一个,小 ...
随机推荐
- Head First HTML与CSS — 为你的页面加图像
HTML中我们用img标签插入图像,在Web中常用的有三种:JPEG, PNG,GIF. 简单来讲,JPEG适合照片和复杂图像使用,而PNG或GIF适合单色图像.logo.和几何图形使用. JPEG: ...
- JavaScript对象属性 constructor
对象属性 constructor 属性返回对创建此对象的数组函数的引用; constructor(构造函数) 在对象创建或实例化时候被调用的方法.通常使用该方法来初始化数据成员和所需资源.构造函数不 ...
- OpenXML_导入Excel到数据库
(1).实现功能:通过前台选择.xlsx文件的Excel,将其文件转化为DataTable和List集合 (2).开发环境:Window7旗舰版+vs2013+Mvc4.0 (2).在使用中需要用到的 ...
- 关于控制文件和redo log损坏的恢复
前段时间一朋友自己电脑上的开发测试用的数据库出了点问题,电脑操作系统是Win8,直接在Win8上安装了Oracle11g,后来系统自动升级到Win8.1,Oracle相关的服务全都不见了,想想把数据文 ...
- ORACLE网络配置大全没有比这个更详细的【weber出品】
一.起篇 现在怎么说也是互联网时代,数据库也要联网,很多朋友学习Oracle的时候无外乎搭建的是以下两种学习环境: 1.直接在windows环境下安装Oracle后直接sqlplus连接. 2.在wi ...
- partial修饰符,可以让同类命名空间下出现重名
public partial class Person { } public partial class Person { } partial修饰符,可以让同类命名空间下出现重名,两个类其实是一个类, ...
- Mysql学习(慕课学习笔记9)查询、分组
查找记录 Select select username,id from users; Group by 进行分组 select sex from users group by sex; 分组条件 se ...
- MongoDB在win7下安装配置
1.在MongoDB官网下载最新版本,并且安装 2.解压后在MongoDB文件目录下创建data文件夹和log文件夹,并且在log文件夹中新建mongodb.log文件 3.新建一个配置文件mongo ...
- MySQL STRAIGHT_JOIN
问题 最近在调试一条查询耗时5s多的sql语句,这条sql语句用到了多表关联(inner join),按时间字段排序(order by),时间字段上已经创建了索引(索引名IDX_published_a ...
- 参数解析argparse模块
argparse,python的一个命令行解析模块 import argparse #创建一个命令行解析器 parser = argparse.ArgumentParser() #增添参数 parse ...