T-SQL批处理和流程控制_第1页
T-SQL批处理和流程控制_第2页
T-SQL批处理和流程控制_第3页
T-SQL批处理和流程控制_第4页
T-SQL批处理和流程控制_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

T-SQL批处理和流程控制课程安排批处理T-SQL基础begin...endif...else...while循环case分支waitfor语句批处理

所谓批处理是指从客户机传递到服务器上的一组完整的数据和SQL指令。在一个批处理中,可以只包含一条SQL指令,也可以包含多条指令。批处理的所有语句被当作一个整体,而被成批地分析、编译和执行,若这一批处理中存在一个语法错误,则所有的语句都无法通过编译。所有的批处理指令以GO作为结束的标志,当编译器读到GO时,它就会把GO前面的所有指令当作一个批处理,并包装成一个数据包发送给服务器。T-SQL基础一、注释语句

--:一行注释(注释的内容不超过一行)

/**/:一段注释(当注释的内容超过一行)二、输出语句:PRINT语句。

PRINT语句把用户定义的消息返回客户端,其基本语句格式如下所示:

PRINT<字符串表达式>T-SQL基础:变量

变量指的是在程序运行过程中值可以发生变化的量。

SQL分为两种类型的变量:全局变量和局部变量。其中全局变量是系统已经定义好的变量,主要反映SQL数据库的操作状态。全局变量名称以@@开头;局部变量由用户定义,主要用于保存运算结果,局部变量的名称必须以@开头。标识符的命名常规标识符应遵守以下的命名规则:标识符长度可以为1-128个字符。对于本地临时表,标识符最多可以有116个字符。标识符的首字符必须为Unicode3.2标准所定义的字母或_、@、#符号。标识符第一个字符后面的字符可以为Unicode3.2标准所定义的字符、数字或@、#、$、_符号。标识符内不能嵌入空格或其他特殊字符。标识符不能与SQLServer中的保留关键字同名。T-SQL基础:变量和运算符局部变量

声明变量:T-SQL中使用DECLARE语句声明变量,并在声明后将变量的值初始化为NULL。在一个DECLARE语句中可以同时声明多个局部变量,它们相互之间用逗号分隔。DECLARE语句的基本语句格式如下:

DECLARE<@变量名1><数据类型>[,<@变量名2><数据类型>……]T-SQL基础:变量和运算符变量赋值

用SET、SELECT给局部变量赋值

语法格式:SET@局部变量=表达式

SELECT{@局部变量=表达式}[,…n]SET只能给一个变量赋值,而SELECT可以给多个变量赋值。两种格式可以通用,建议首选使用SET,而不推荐使用SELECT语句。

表达式中可以包含SELECT语句子查询,但只能是集合函数

返回的单值。且必须用圆括号括起来。

SELECT也可以直接使用查询的单值结果给局部变量赋值。如:SELECT@局部变量=表达式或字段名FROM表名WHERE条件T-SQL基础:变量和运算符局部变量的显示:

SELECT<@变量名表>

PRINT<@变量名>局部变量的作用域:

在一个批处理、一个存储过程或一个触发器内,其生命周期从定义开始到它遇到的第一个GO语句或者到存储过程、触发器的结尾结束,即局部变量只在当前的批处理、存储过程、触发器中有效。

如果在批处理、存储过程、触发器中使用其他批处理、存储过程、触发器定义的变量,则系统出现错误并提示“必须声明变量”。T-SQL基础:全局变量全局变量全局变量是由系统提供的有确定值的变量,用户不能自己定义全局变量,也不能用SET语句来修改全局变量的值。系统全局变量都是以@@开头的,全局变量实际上是一些特殊的不需要参数、也不需要加括号调用的函数,可直接返回特定的值。例如:@@error:其值为最后一次执行错误的SQL语句产生的错误代码@@max_connections:其值为SQLServer允许多用户同时连接的最大数@@connections:SQLServer最近一次启动后已连接或尝试连接的次数@@version:本地SQLServer服务器的版本信息T-SQL流程控制语句

T-SQL语言与其它高级语言一样,提供了可以控制程序执行流程的语句。使用这些流程控制语句可以更好地组织和控制程序的流程。

1、顺序控制语句BEGIN…END语句块

BEGIN语句1语句2…END不论多少个语句,放在BEGIN…END中间就构成一个独立的语句块,被系统当作一个整体单元来处理。条件的某个分支或循环体语句中,如果要执行两个以上的复合语句,则必须将它们放在BEGIN…END中间。T-SQL流程控制语句2、条件判断语法格式:if

逻辑表达式{语句|语句块}[else{语句|语句块}]作用:按条件控制程序的执行。当条件满足时,则在执行条件之后的T-SQL语句。否则,就执行else后的T-SQL语句(若ELSE部分存在)。T-SQL流程控制语句3、WHILE循环语句

WHILE条件表达式BEGIN循环体语句系列…[BREAK]……[CONTINUE]……END执行过程:先计算判断条件表达式的值若条件为真则执行BEGIN…END之间的循环体语句系列,执行到END时返回到WHILE再次判断条件表达式的值。若条件为假,则直接跳过BEGIN…END不执行循环。若在执行循环体时遇到BREAK语句,则无条件跳出BEGIN…END。若在执行循环体时遇到CONTINUE语句,则结束本轮循环,不再执行之后的循环体语句,返回到WHILE再次判断条件表达式的值。T-SQL流程控制语句4、CASE结构CASE结构用于多条件分支选择,可以完成计算多个条件并为每个条件返回单个值。支持两种格式:(1)简单CASE…END表达式

CASE测试表达式WHEN常量值1THEN结果表达式1[{WHEN常量值2THEN结果表达式2}[…n]][ELSE结果表达式n]END功能:根据测试表达式的值得到一个对应值。执行过程:先计算测试表达式的值,将测试表达式的值按顺序依次与WHEN指定的各个常量值进行比较;如果找到了一个相等常量值,则整个CASE表达式取相应THEN指定的结果表达式的值,之后不再比较,跳出CASE…END;如果找不到相等的常量值,则取ELSE指定的结果表达式n;如果找不到相等的常量值也没有使用ELSE,则返回NULL。T-SQL流程控制语句(2)搜索CASE…END表达式CASEWHEN条件表达式1THEN结果表达式1[{WHEN条件表达式2THEN结果表达式2}[…n]][ELSE结果表达式n]END功能:根据某个条件得到一个对应值。注意:搜索CASE表达式与简单CASE表达式的语法区别是CASE后没有测试表达式,WHEN指定的不是常量值而是条件表达式。执行过程:按顺序依次判断WHEN指定条件表达式的值,遇到第一个为真的条件表达式,则整个CASE表达式取对应THEN指定的结果表达式的值,之后不再比较,结束并跳出CASE…END。如果找不到为真的条件表达式,则取ELSE指定的结果表达式n。如果找不到为真的条件表达式也没有使用ELSE,则返回NULL。T-SQL流程控制语句5waitfor等待语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论