zoukankan      html  css  js  c++  java
  • Sqlserver基于流程控制

    流程控制语句只能在单个批处理段,用户自定义函数和存储过程中使用
    不能夸多个批处理或者用户自定义函数或者存储过程

    批处理:一个或者多个语句组成的一个批处理,是因为所有语句一次性地被提交到一个sql实例,
    如果想让多个语句多次提交到sql实例,则需要go关键字,可以看做是一个批处理结束的标识符,当遇到go,会把go前面的语句作为一个批处理直接传递到sql实例,所以不在一个批处理内局部变量不可见,也不可对夸批处理的语句使用流程控制语句sqlserver 有8个流程控制语句关键字:

    Begin end   ,break,goto,continue,if else ,while,return,waitfor

    begin end:用于将多个语句分成逻辑上的一部分
    while:用于循环,还经常被用于游标中

    continue:用于结束本次循环,直接开始下一次循环
    break:用于结束本次循环,直接开始下一次循环
    注意:当while循环嵌套时,continue和break只会作用于它们所处的while循环之内,不会对外部while循环产生作用

    return:在第一个批处理内return之后的语句不会执行,但只会退出第一个批处理
    第二个批处理照常执行

    在存储过程中,return语句后面可以返回数字用于返回执行状态或者错误代码

    waitfor:关键字允许指定语句在特定时间或是推迟特定时间执行

    推迟等待的语法是: waitfor delay ‘需要等待的执行时间’
    在特定时间执行的语法是: waitfor time ‘需要执行程序的精确时间’  

    WAITFOR DELAY '0:00:03'
    BEGIN
        PRINT 1
        PRINT 2
    END
    
    SELECT GETDATE();
    WAITFOR TIME  '15:56:24.233'
    BEGIN
        PRINT 1
        PRINT 2
    END
    --比如 10小时后打印 当前时间
    DECLARE @startTime DATETIME
    WAITFOR TIME @startTime 
    BEGIN
        PRINT GETDATE();
    END
  • 相关阅读:
    转:CTE(公共表表达式)——WITH子句
    排名函数——ROW_NUMBER()、RANK()、DENSE_RANK()和NTILE(n)
    深层拷贝和浅层拷贝
    Jmeter如何连接数据库Mysql
    java执行cmd命令并获取输出结果
    Java 读取Excel2007 jar包冲突的问题(org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException)
    读写文件
    eclipse报jvm terminated.exitcode=2异常解决办法
    Appium常用的API函数
    自动化生成html报告
  • 原文地址:https://www.cnblogs.com/niuzaihenmang/p/5706879.html
Copyright © 2011-2022 走看看