批处理
一、定义:
1、包含一个或多个的T-SQL语句语句的组,从应用程序一次性的发送到SQL SERVER中执行
2、可执行计划:SQL SERVER将批处理语句编译成一个可执行单元。执行计划中的语句每次招待一条。
3、一个批处理以GO结束。
二、建立批处理时应遵循以下规则:
1、所有批处理必须以CREATE语句开头。
2、不能在同一批处理中更改表结构,再引用新添加的列。
3、EXECUTE语句是批处理语句的第一句,则不需要加EXECUTE关键字;否则,需要添加EXECUTE关键字。
控制流语句
一、作用:程序流程控制语句主要用于控制T-SQL语句、语句块和存储过程的执行过程。
1.1、begin-end语句块
1.1.1、作用:将多条T-SQL语句组合在一起,组成一个逻辑块,当控制流语句必须执行一个或两个以上的T-SQL语句的语句块时使用。
1.1.2、说明
a、相当于很多语言中的{}。
b、将多条语句封装成一条语句块,整个语句块等同于一条语句。
c、常用于if..else while..中处理一条语句的不足。
1.2、无条件转移(GOTO)
格式:GOTO标号处
作用:本语句将T-SQL 语句的执行顺序无条件的转移到用户指定的标号处(递归运算)
示例:使用T-SQL语句,求10的阶乘
DECLARE @m int=1,@n int=2
xx: --指定标号处
SELECT @m=@m*@n;
SELECT @n=@n+1;
IF(@n <=10)
goto xx
else
select @m as '阶乘和',@n as '自增值'
运行结果如下:
1.3、判断语句(while)
while(布尔表达式)
begin
语句块
end
a、作用:当布尔表达式为真时,会持续执行语句块,直到条件不成立时
b、同时使用的语句有两个:break,continue
break:执行语句时,程序无条件退出整个while循环
continue:执行语句时,程序跳出continue后面的语句,而立即执行下一层循环
1.4、waitfor
a、作用:挂起执行连接,直到超过指定间隔或者达到一天中指定的时间
b、语法格式:
指定时间间隔:waitfor delay 指定时间间隔
指定时间点:waitfor time 时间点
在执行语句前等待2秒
waitfor delay '00:00:02'
select * from student
指定时间点,执行语句(指定到每天2点执行)
waitfor time '02:00:00'
select * from student