文档详情

《sql server 2005》 课件第六章T-SQL流程控制语句.ppt

发布:2018-06-19约2.53千字共14页下载文档
文本预览下载声明
第六章 T-SQL 程序设计 6.1 全局变量和局部变量 一、全局变量 定义:是由SQL Server事先定义好的具有有特定作用(通常记录服务器的活动状态) 的变量,它不能由用户定义或赋值。 特点:全局变量由 @@ 开头,后跟特定保留字。 全局变量举例: 1、@@ERROR 作用:该全局变量将返回最后执行的T-SQL语句的错误代码,返回值的数据类型是整数.如果SQL语句执行成功则返回0,不成功,则返回相关错误信息对应的错误号。 6.1 全局变量和局部变量 一、全局变量 eg:使用@@ERROR变量检验SQL语句是否执行成功 select sno from stu where sname=周迅 if @@error = 0 print 你的SQL 语句执行成功 6.1 全局变量和局部变量 一、全局变量 2、@@rowcount使用 作用:返回受上面SQL语句影响的记录条数,返回的数据类型是整数型数据,如果不返会记录的SQL语句将返回0 eg: 在update 语句中使@@rowcout检测发生更改的记录数 Update stu set sex=‘男‘ where sno=001 Print ‘共有’ + RTRIM(@@rowcount)+‘改变了性别 6.1 全局变量和局部变量 二、局部变量 1、含义、作用及表示 由用户定义的、作用域限在一定范围(批处理、语句块、过程等)的、用于存放临时数据的变量。局部变量由 @ 开头,后跟变量名,如 @n1、@k、@sum等 2、声明局部变量(以下简称变量) 使用DECLARE声明,语法形式如下: DECLARE 变量名 数据类型[,… …] 例如: DWCLARE @a int ,@s flaot ,@d datetime 在一个声明语句中可同时声明多个不同类型的变量 6.1 全局变量和局部变量 二、局部变量 3、变量的赋值 使用SELECT 或SET语句,语法形式为: SELECT 变量名1=表达式/字段名 [from 子句][where 子句]……,变量名2=…… SET 变量名=表达式 declare @a int,@b char(10),@c char(3),@n float select @a=cj from xk select @b=VFP6.0, @n=123.456 set @c=1.2 select @a,@b,@c,@n 6.1 全局变量和局部变量 二、局部变量 说明: (1)定义字符型变量必须指定长度,否则不能正确赋值和显示。 (2)SET语句仅用于将表达式的值赋给变量,且一个语句只能给一个变量赋值。 (3)用SELECT语句给变量赋以从表中查询到的字段值时,若有多个查询值,则变量取最后一个值,且一个SELECT语句可给多个变量赋值。 6.2 程序流程控制 一、BEGIN…END语句块 作用:将多条T-SQL语句组合在一起,组成一个逻辑块,当控制流语句必须执行一个包含一条或两条以上的T-SQL语句的语句块时使用。 注意:相当与很多语言中的 {} 二、IF …ELSE语句 格式: IF (布尔表达式) {SQL语句块1} ELSE {SQL 语句块2} 6.2 程序流程控制 Eg1:如果stu表中有名叫张三的学生,请输出信息,否则提示用户没有这个学生。 IF exists(select sno from stu where sname=张三) BEGIN PRINT 下列学生的姓名是张三 select * from stu where sname=张三 END ELSE BEGIN PRINT 没有张三这个的学生 END 6.2 程序流程控制 三、WHILE语句 格式: WHILE 布尔表达式 BEGIN 命令程序块 END 作用:当WHILE后面的布尔表达式为真,会重复执行命令程序块,直到条件不成立时为止 6.2 程序流程控制 Eg2:判断xk表中是否有学生的成绩少于30,如果有,则将所有学生的成绩增加1,直到所有学生的成绩都多于30 WHILE EXISTS(SELECT * FROM xk where cj30) BEGIN UPDATE xk set cj=cj+1 END 6.3
显示全部
相似文档