批处理

批处理是同时从应用程序发送到SQL Server并得以执行的一组单条或者多条T-SQL语句。SQL Server将批处理语句编译为单个可执行单元,称为执行计划,执行计划中的语句每次执行一条。
如果批处理中的某条语句发生编译错误,会导致批处理中所有的语句都无法执行。

批处理就是用GO语句作为一段的结束标语

  1. 第一段SQL代码
  2. GO
  3. 第二部门SQL代码
  4. GO

流程控制

BEGIN…END语句

BEGIN…END语句用于将T-SQL的多个语句组合成一个逻辑块。相当于一个单一的语句达到一起执行的目的。T-SQL允许嵌套使用BEGIN…END语句

  1. BEGIN
  2. {
  3. 语句1
  4. 语句2
  5. ...
  6. }
  7. END

IF…ELSE语句

  1. IF <逻辑表达式>
  2. {语句块1}
  3. [ELSE
  4. {语句块2}]

CASE语句

CASE语句用于计算多个条件并为每个条件返回单个值,以简化SQL语句格式。CASE语句实质上是函数,不能作为独立语句来执行,而是需要作为其他语句的一部分来执行。
CASE语句有两种格式:简单CASE函数和CASE搜索函数

简单CASE函数

  1. CASE 输入表达式
  2. WHEN <表达式1> THEN <结果表达式1>
  3. WHEN <表达式2> THEN <结果表达式2>
  4. [...n]
  5. [ELSE <其他结果表达式>]
  6. END

CASE搜索函数

  1. CASE
  2. WHEN <逻辑表达式1> THEN <结果表达式1>
  3. WHEN <逻辑表达式2> THEN <结果表达式2>
  4. [...n]
  5. [ELSE <其他结果表达式>]
  6. END

区别:简单CASE函数是用输入表达式和表达式进行比较,返回比较上的结果表达式。CASE搜索函数没有输入表达式,返回第一个为TRUE的逻辑表达式的结果表达式。

WHILE,CONTINUE,BREAK语句

  1. WHILE 逻辑表达式
  2. 语句块1
  3. [CONTINUE]
  4. [BREAK]
  5. END

GOTO语句

  1. 标签名:
  2. ...
  3. GOTO 标签名

RETURN语句

可以从过程,批处理,语句块退出

  1. RETURN [表达式]

WAITFOR

用于实现语句延缓一段时间,或者延迟到某个特定的时间执行的功能。

  1. WAITFOR {DELAY 'time'|TIME 'time'}

DELAY:表示一直等到指定的时间过去,最长可以达24小时 TIME:表示等待到指定时刻 time:要等待的时间。可以按照DATETIME的格式写,可以用局部变量