zoukankan      html  css  js  c++  java
  • SQL Server游标+延迟执行简介

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

    这里讲一个我遇到的问题,由于我们批量生成数据时基本上是瞬间完成,所以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 '我是延迟执行'

  • 相关阅读:
    ecshop在PHP 5.4以上版本各种错误问题处理
    PHP:字符串转数组,数组转字符串;字符串截取、替换、查找
    js 数据存入数组
    javascript获取焦点对象ID
    ajax 提交序列化表单
    muiwe-选项卡bivew和div模式
    mui的header调整位置
    MUI页面传值取值
    百度地图js自定义控件
    解决百度地图js在移动端点击无效
  • 原文地址:https://www.cnblogs.com/rampb/p/4344628.html
Copyright © 2011-2022 走看看