码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver游标+延迟执行简介

时间:2015-03-17 17:21:39      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

在项目测试中,我们可能会使用批量生成数据来测试程序的性能。

这里讲一个我遇到的问题,由于我们批量生成数据时基本上是瞬间完成,所以GETDATE()函数获得的时间基本上也是一样的,而我们又要求生成每条数据的时间不同,那么如何来解决这个问题?

网上搜索了很多,这里我是使用游标+waitfor来处理的:

首先来讲下游标,因为个人也是才使用游标,而且也没有深入研究。

那么游标是用来干什么的呢?一般我们使用游标是用来对查询出来的结果集进行处理的(修改,新增...)。

T-SQL中的游标定义在MSDN中如下:

DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]
[;]


游标的简单定义:declare 游标名 cursor for 结果集

开启游标:open 游标名

向下读取游标:fetch next from 游标名 into 接收从结果集中读取到的数据的变量

关闭游标:close 游标名

释放游标:deallocate 游标名
这里因为要使用游标对结果集进行遍历,那么我们必须要来介绍一个全局变量@@Fetch_Status

@@FETCH_STATUS 返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

返回值 描述 0 FETCH 语句成功。 -1 FETCH 语句失败或此行不在结果集中。 -2 被提取的行不存在

这里只是介绍游标一些简单的用法。

 

下面我们再来介绍一下如何在数据库中使用延迟

waitfor delay ‘00:00:01‘--一秒后执行print语句

print ‘我是延迟执行的‘

 

waitfor delay ‘00:00:00.010‘--10毫秒后执行print语句

print ‘我是延迟执行‘

 

waitfor time ‘10:00:00‘--十点执行print语句

print ‘我是延迟执行‘

 

sqlserver游标+延迟执行简介

标签:

原文地址:http://www.cnblogs.com/huzhichao910321/p/4344628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!