SQL cursor用法实例

代码如下:

DECLARE @OldId varchar(50)  
DECLARE @CustomerID varchar(50)  
DECLARE My_Cursor CURSOR --定义游标  
FOR (select CustomerID,oldid from Customer where Area='bj') --查出需要的集合放到游标中  
OPEN My_Cursor; --打开游标  
FETCH NEXT FROM My_Cursor INTO @CustomerID,@OldId; --读取第一行数据  
WHILE @@FETCH_STATUS = 0     
    BEGIN    
       DECLARE @OtherPro VARCHAR(500)  
       DECLARE @StatusID varchar(200)  
       DECLARE @Userid varchar(200)  
       DECLARE @FinalUserid varchar(200)

SELECT @OtherPro=OtherPro,@StatusID=CustomerStatusID,@Userid=UserID FROM bjsunmis.dbo.Customer WHERE CustomerID=@OldId;

SELECT @FinalUserid=UserID from Users where oldid=@Userid

INSERT INTO CustomerotherInfo(CustomerID,OtherPro,CustomerStatusID,UserID)VALUES(@CustomerID,@OtherPro,@StatusID,@FinalUserid)

FETCH NEXT FROM My_Cursor INTO @CustomerID,@OldId; --读取下一行数据      
    END 
CLOSE My_Cursor; --关闭游标  
DEALLOCATE My_Cursor; --释放游标  
GO

(0)

相关推荐

  • 深入SQL Cursor基本用法的详细介绍

    由于这个游标 执行一下就相当于SELECT一下 其效率不敢恭维也没做深入研究. 复制代码 代码如下: table1结构如下 id    int name  varchar(50) declare @id int declare @name varchar(50) declare cursor1 cursor for         --定义游标cursor1 select * from table1               --使用游标的对象(跟据需要填入select文) open curs

  • SQL cursor用法实例

    复制代码 代码如下: DECLARE @OldId varchar(50)   DECLARE @CustomerID varchar(50)   DECLARE My_Cursor CURSOR --定义游标   FOR (select CustomerID,oldid from Customer where Area='bj') --查出需要的集合放到游标中   OPEN My_Cursor; --打开游标   FETCH NEXT FROM My_Cursor INTO @Customer

  • MyBatis动态SQL标签用法实例详解

    1.动态SQL片段 通过SQL片段达到代码复用 <!-- 动态条件分页查询 --> <sql id="sql_count"> select count(*) </sql> <sql id="sql_select"> select * </sql> <sql id="sql_where"> from icp <dynamic prepend="where&quo

  • C#执行SQL事务用法实例

    本文实例讲述了C#执行SQL事务用法.分享给大家供大家参考.具体分析如下: 1.通过存储过程. 2.通过C#中提供的Transaction.这里就来演示一下通过C#中提供的Transaction 执行SQL事务. WebForm3.aspx.cs页面 复制代码 代码如下: using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.UI;  us

  • Sql Server中Substring函数的用法实例解析

    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'

  • Oracle addBatch()用法实例详解

    Oracle addBatch()用法实例详解 PreparedStatement.addbatch()的使用 Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用. 1.建立链接     Connection connection =getConnection(); 2.不自动 Commit connection.setAutoCommit(false); 3.预编译SQL语句,只编译一回哦,效

  • Python3操作SQL Server数据库(实例讲解)

    1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了. 2.最基本的SQL查询语句 python是使用pymssql这个模块来操作SQL Server数据库的,所有需要先安装pymssql. 这个直接在命令行里输入pip install pymssql安装就行了 然后还要配置好自己本地的SQL Server数据库,进入Microsoft SQL Server Management Studio中可以进行设置.如果你选择

  • 基于hover的用法实例(推荐)

    //hover,鼠标移入移出的另一种用法 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=U

  • PHP生成器功能与用法实例分析

    本文实例讲述了PHP生成器功能与用法.分享给大家供大家参考,具体如下: 1. 官方说明:生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低.生成器允许你在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组. 2. 生成器就像一个普通的自定义函数一样, 和普通函数只返回一次不同的是, 生成器可以根据需要 yield 多次,以便生成需要迭代的值. 3. 代码示例: //未使用生成器 echo '开始内存:

  • php redis的scan用法实例分析

    在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的key值,可通过匹配的方式进行查询后删除. 但是使用keys会导致redis服务器宕机.慎用... 一般公司也会禁用keys等比较敏感的命令的. 所以工作中会使用scan命令来进行匹配查询 SCAN cursor [MATCH pattern] [COUNT count] 比如 # 从游标 0 开始扫描 匹配 test1:* 的键值,一次扫描1000条 scan 0 match test1:* count 1000 1) 表示下一次扫

  • Angular中$cacheFactory的作用和用法实例详解

    先说下缓存: 一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求.多次重复地获取资源可能会导致数据重复,消耗时间.因此缓存适用于变化性不大的一些数据,缓存能够服务的请求越多,整体系统性能就能提升越多. $cacheFactory介绍: $cacheFactory是一个为Angular服务生产缓存对象的服务.要创建一个缓存对象,可以使用$cacheFactory通过一个ID和capacity.其中,ID是一个缓存对象的名称,capacity则是描述缓存键值对的最大数量. 1.

随机推荐