博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一个数据库游标的实例
阅读量:4881 次
发布时间:2019-06-11

本文共 2016 字,大约阅读时间需要 6 分钟。

 
--数据游标在数据库中起到的就是一个书签的作用,它让一个抽象的成员实例化为一个准确的对象。游标虽好,但是可不能多次使用,运行效率会降低!
USE [数据库名]GOCreate procedure [dbo].[proc_gitcontent]//存储过程名称asdeclare --声明变量(用于插入数据)@content varchar(max),@sendsuccesscount int,@sendfailecount int,@submitfailcount int,@unknown int,@status int,@userid int,@addtime datetime--定义一个游标cursor(相当于一个书签)declare content_cursor cursor for select Content,userid from tbl_sms_log group by Content,useriddeclare @sum intset @sum=0create table #table([ID] int identity(1,1) primary key NOT NULL,[Userid] int null,--用户id[content] [varchar](max) null,--内容[sendsuccess] [int] null,--发送成功 10[sendfail] [int] null,--发送失败 20[submitfail] [int] null,--提交失败 2[unknown] [int] null,--未知数 0[addtime] [datetime] null--添加时间)--打开游标open content_cursor  --读取游标(遍历赋值)(解决重复插入的bug)   fetch next from content_cursor into @content,@userid while @@FETCH_STATUS=0   --返回游标执行状态(0表示返回结果成功)  begin   --发送成功赋值   set @sendsuccesscount=(select COUNT([status]) from tbl_sms_log where status='10' and Content=@content and UserID=@userid group by Content,userid,[status])   --发送失败赋值   set @sendfailecount=(select COUNT([status]) from tbl_sms_log where status='20' and Content=@content and UserID=@userid group by Content,userid,[status])   --提交失败赋值   set @submitfailcount=(select COUNT([status]) from tbl_sms_log where status='2' and Content=@content and UserID=@userid group by Content,userid,[status])   --未知赋值   set @unknown=(select COUNT([status]) from tbl_sms_log where status='0' and Content=@content and UserID=@userid group by Content,userid,[status]) set @addtime =GETDATE()      --set @sum+=1   insert into #table(Userid,content,sendsuccess,sendfail,submitfail,unknown,addtime) values (@userid,@content,@sendsuccesscount,@sendfailecount,@submitfailcount,@unknown,@addtime)fetch next from content_cursor into @content,@userid--游标再次赋值,解决数据重复插入的bug   end--关闭游标(decalre content_cursor cursor for)close content_cursor--释放资源deallocate content_cursorbeginselect * from #table--关闭游标end

 

转载于:https://www.cnblogs.com/Can-daydayup/p/8660996.html

你可能感兴趣的文章
十二、网络编程——4-基于UDP协议的网络编程
查看>>
异常处理与调试6 - 零基础入门学习Delphi55(完)
查看>>
if语句三种形式
查看>>
正则表达式之字符串验证
查看>>
codeblocks如何支持_tmain?可移植代码的编码推荐
查看>>
省市联动 填坑
查看>>
canvas写的一个小时钟demo
查看>>
原来今天是冬至
查看>>
又混了一天班
查看>>
九度oj 1006
查看>>
HDU6400-2018ACM暑假多校联合训练1004-Parentheses Matrix-构造
查看>>
最短路问题专题
查看>>
《Redis复制与可扩展集群搭建》看后感
查看>>
Jquery Mobile总结
查看>>
223. Rectangle Area
查看>>
spring boot + velocity中文乱码解决方式
查看>>
读罢泪两行,人生成长必须面对的10个残酷事实
查看>>
ASP 32位程序运行与64位问题:ADODB.Connection 错误 '800a0ea9' 未指定提供程序,也没有指派的默认提供程序。...
查看>>
xcode-git笔记
查看>>
TCP和UDP的优缺点及区别
查看>>