游标实例

今天写了一个游标,但是不知道怎么在这游标里定义一个变量来记录执行时影响条数,并插入两条数据时就跳出循环结束游标。

没有想出辙,实属头疼。附代码如下:

--游标
declare @userID uniqueidentifier--userid
declare y_curr cursor for
select top 2 userID from Hope_Users_db.dbo.u_Users order by addTime desc

open y_curr --打开游标
fetch next from y_curr into @userID ----开始循环游标变量
while(@@fetch_status=0)---返回被FETCH  语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
begin
	   if exists (select * from Q_enterprise where userID = @userID)
		  begin
		     print @userID
		  end
		else
		  begin
			   print @userID
			   insert into Q_enterprise
			   select distinct u.userID, u.userType,u.SyncCharityId as CharityId,u.userTrueName,u.userLogo,0 as donationAmount,e.enterpriseContactMobile,
			   e.enterprisePurpose,0 as enterpriseLongitude,0 as enterpriseLatitude,‘‘ as Infoproportion,0 as sharesum,0 as praisesum,
			   0 as Donationsum,0 as Farvritessum,0 as Donationsum30,u.addTime,‘‘ as updatetime
			   from Hope_Users_db.dbo.u_Users u
			   inner join Hope_Donation_DB.dbo.d_Donation d
			   on u.userID=d.userID
			   inner join Hope_Users_db.dbo.u_Enterprise e
			   on u.userID = e.userID
			   where [email protected]
		  end
      fetch next from y_curr into @userID --开始循环游标变量
end
close y_curr--关闭游标
deallocate y_curr --释放游标
go

  

时间: 2024-10-31 13:58:06

游标实例的相关文章

SQL 中的游标实例

--声明变量 declare @IMType varchar(10),@IMResourceID varchar(10) --定义游标 declare information_cursor cursor for select [IMType],[IMResourceID] FROM [BJYX].[dbo].[Information] --打开游标 open information_cursor --搜索行,并将数据存储在变量中 Fetch next from information_curso

mybatis 调用存储过程 返回游标 实例

存储过程示例: create or replace procedure Fsp_Plan_CheckPrj(v_grantno varchar2, v_deptcode number, v_cursor out sys_refcursor) is ……………… ---返回统计结果 open v_Cursor for select s.plan_code, s.plan_dept, s.plan_amount, s.exec_amount, p.cname as plan_name, d.cnam

游标 实例

declare @JoinMeetingPersonID int declare @begindate1 datetime set @begindate1 = '2014-12-01 17:44:03' DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT JoinMeetingPersonID FROM dbo.T_JoinMeetingPerson) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM

sqlserver 存储过程 游标实例

if exists(select * from sysobjects where id = object_id(N'dbo.test_cursor') and type = 'P') drop PROCEDURE dbo.test_cursor GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE test_cursor AS Declare @acctNbr varchar(100); Declare @acc

SqlServer游标简介

游标实例:             Declare MyCusror Cursor Scroll For Select * From Master_Goods Order By GoodsID Open MyCursor Fetch next From MyCursor             Into @GoodsCode,@GoodsName While(@@Fetch_Status = 0) Begin Begin    Select @GoodsCode = Convert(Char(2

ref游标(动态游标)

参照变量--用于存放数值指针的变量    游标变量(ref cursor)   使用游标时,当定义游标时不需要指定相应的select语句,但是当使用    游标时(open时)需要指定select语句,这样一个游标就与一个select语句结合了. 游标实例: 1.请使用pl/sql编写一个块,可以输入部门号,并显示该部门所有员工姓名和他的工资. 2.在1的基础上,如果某个员工的工资低于200元,就添加100元. declare --定义游标类型 typesp_emp_copy_cursor is

Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器

初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在  笔记 在pl/sql中可以继续使用的sql关键字有:update delete insert select--into commit  rollback savepoint   ,在这里需要注意的是查询跟以前有些不一样了 plsql由三个块组成:声明部分,执行部分,异常处理部分 declare:在此声明pl/sql用到的变量,类型及游标,以及局部的存储过程的和函数 be

MySQL数据库高级(九)——游标

MySQL数据库高级(九)--游标 一.游标简介 1.游标简介 游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果.游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.尽管游标能遍历结果中的所有行,但一次只指向一行.游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作. 2.游标的特性 游标具有三个属性:A.不敏感(Asensitive):数据库可以选择不复制结果集B.只读(Read only)C.不滚动(Nonscrollable):游标只能向一个方向

mysql_01_游标的使用

一.表的创建 DROP TABLE IF EXISTS shops_info; /*EMP产品版本版本信息表*/ CREATE TABLE shops_info ( ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT, /*自增ID*/ name VARCHAR(20) DEFAULT '' NOT NULL, price INT DEFAULT 0 NOT NULL, pdesc VARCHAR(20) DEFAULT '0' NOT NULL, CREATE