批处理
批处理是同时从应用程序发送到SQL Server并得以执行的一组单条或者多条T-SQL语句。SQL Server将批处理语句编译为单个可执行单元,称为执行计划,执行计划中的语句每次执行一条。
如果批处理中的某条语句发生编译错误,会导致批处理中所有的语句都无法执行。
批处理就是用GO语句作为一段的结束标语
第一段SQL代码
GO
第二部门SQL代码
GO
流程控制
BEGIN…END语句
BEGIN…END语句用于将T-SQL的多个语句组合成一个逻辑块。相当于一个单一的语句达到一起执行的目的。T-SQL允许嵌套使用BEGIN…END语句
BEGIN
{
语句1
语句2
...
}
END
IF…ELSE语句
IF <逻辑表达式>
{语句块1}
[ELSE
{语句块2}]
CASE语句
CASE语句用于计算多个条件并为每个条件返回单个值,以简化SQL语句格式。CASE语句实质上是函数,不能作为独立语句来执行,而是需要作为其他语句的一部分来执行。
CASE语句有两种格式:简单CASE函数和CASE搜索函数
简单CASE函数
CASE 输入表达式
WHEN <表达式1> THEN <结果表达式1>
WHEN <表达式2> THEN <结果表达式2>
[...n]
[ELSE <其他结果表达式>]
END
CASE搜索函数
CASE
WHEN <逻辑表达式1> THEN <结果表达式1>
WHEN <逻辑表达式2> THEN <结果表达式2>
[...n]
[ELSE <其他结果表达式>]
END
区别:简单CASE函数是用输入表达式和表达式进行比较,返回比较上的结果表达式。CASE搜索函数没有输入表达式,返回第一个为TRUE的逻辑表达式的结果表达式。
WHILE,CONTINUE,BREAK语句
WHILE 逻辑表达式
语句块1
[CONTINUE]
[BREAK]
END
GOTO语句
标签名:
...
GOTO 标签名
RETURN语句
可以从过程,批处理,语句块退出
RETURN [表达式]
WAITFOR
用于实现语句延缓一段时间,或者延迟到某个特定的时间执行的功能。
WAITFOR {DELAY 'time'|TIME 'time'}
DELAY:表示一直等到指定的时间过去,最长可以达24小时 TIME:表示等待到指定时刻 time:要等待的时间。可以按照DATETIME的格式写,可以用局部变量