流程控制语句

是指用来控制程序运行和流程分至点额命令。一般指的是逻辑计算部分的控制。

1.Begin End语句

封装了多个T-SQL语句组合,将他们组成一个单元来处理。

一般在条件查询或者循环等控制流程语句中,要查询满足特定条件的操作时会用到。Begin……end能够嵌套使用。

语法例如以下:

begin
--<sql语句或程序块>
end

样例

begin
--<sql语句或程序块>
select * from StudentInfo
update StudentInfo set money =50
end

2.推断语句

当满足某种特定条件的时候才运行的语句,通常就是我们所说的 If……else语句。通过做出推断。选择运行某条语句或语句块

语法例如以下:

if<条件表达式>
--<sql语句或程序块>
else<条件表达式>
-- <sql语句或程序块>

样例

--declare 是声明的意思
declare @money int
select @money=money from StudentInfo where stuid ='01'
if @money >20
print '钱太多了'
else
print '钱太少了'

当中<条件表达式>能够是各种表达式的组合。可是必须是true或者false。Else是可选的,最简单的if语句没有else部分

3.检測语句

If……exists语句时用来检測数据是否存在,当然了我们也能够通过检測匹配行count(*)来实现,可是没有if……exists效果好。由于假设仅仅要找到第一条匹配的数据的话。server就会停止检測

语法规则

if [not]exists (select 查询语句)
<命令行或语句块>
else <条件表达式>
<命令行或语句块>

样例

--检查学号为01的学生是否存在
if exists (select * from StudentInfo where stuid='01')
print '这个学生存在'
else
print '这个学生不存在'

4.多分支推断语句

Case……when结构提供比if……else结构很多其它的选择和推断机会。假设学习过编程语言的同学来说。我们应该见过这样的结构的语句。使用它能够非常方便的实现多分支推断,从而避免if……else的语句嵌套使用。

语法规则有两种

规则一

case<算术表达式>
when<算术表达式>then<运算符>
when<算术表达式>then<运算符>
[else<算术表达式>]
end

规则二

case
when<算术表达式>then<运算符>
when<算术表达式>then<运算符>
[else<算术表达式>]
end

样例

--选择某一条件
select money=
case
--对该条件进行选择分支推断
when(money<20) then '太少了'
when(money>20) then '太多了'
else '还行吧'
end
from StudentInfo

5.循环语句

能够反复运行sql语句或者要运行的语句块。仅仅要指定的条件成马上可

Break命令让程序全然跳出循环语句,结束while命令。continue是让命令继续返回运行

语法规则

while <条件表达式>
begin
<sql语句或者程序块>
break
continue
<sql语句或者程序块>
end

样例

--计算1+2+3……100的和

declare @i int,@small int
select @i=1,@small=0 while @i<=100 --推断的条件
begin
set @small =@small +@i
set @i=@i+1
continue
end
print '1+2+3……100的和是'
print @small

6.跳转语句

使用goto语句能够改变程序的流程,让程序自己主动跳到我们要运行的程序行

语法规则:

Goto标识符:

样例

--计算1+2+3……100的和

declare @i int,@small int
select @i=1,@small=0 while @i<=100 --推断的条件
begin
set @small =@small +@i
set @i=@i+1
goto wode
continue
end
print '1+2+3……100的和是'
print @small wode:
print '我跳出来了'

小结:

这些语句时我们在学习SQL SERVER中会常常遇到的,事实上也不难,与我们寻常学习的编程语言中的控制结构同样,仅仅只是是格式可能的略作改动。仅仅要尝试下,找几个样例练一下就可以。

SQL SERVER中的流程控制语句的更多相关文章

  1. Sql Server系列:流程控制语句

    T-SQL中用来编写流程控制模块的语句有:BEGIN...AND语句.IF...ELSE语句.CASE语句.WHILE语句.GOTO语句.BREAK语句.WAITFOR语句和RETURN语句. 1 B ...

  2. Sql Server数据库之流程定义变量和流程控制语句

    一.局部变量和全局变量 1.声明局部变量 语法:declare @变量名 变量类型 2.给局部变量赋值 语法:set @变量名=值,         select @变量名=值 区别:第一种方式用于普 ...

  3. SQL Server中CURD语句的锁流程分析

    我只在数据库选项已开启“行版本控制的已提交读”(READ_COMMITTED_SNAPSHOT为ON)中进行了观察. 因此只适用于这种环境的数据库. 该类数据库支持四种不同事务隔离级别,下面分别观察数 ...

  4. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  5. SQL Server中CTE的另一种递归方式-从底层向上递归

        SQL Server中的公共表表达式(Common Table Expression,CTE)提供了一种便利的方式使得我们进行递归查询.所谓递归查询方便对某个表进行不断的递归从而更加容易的获得 ...

  6. SQL Server中的锁 详解 nolock,rowlock,tablock,xlock,paglock

    摘自: http://www.myexception.cn/sql-server/385562.html 高手进 锁 nolock,rowlock,tablock,xlock,paglock 锁 no ...

  7. (4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)

    (4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务) 1.概念:隐式事务,显式事务,自动提交事务 2.操作:如何设置事务模式 3.存储过程中的事务 XACT_ABORT 1 ...

  8. 第17周翻译:SQL Server中的事务日志管理的阶梯:第5级:在完全恢复模式下管理日志

    来源:http://www.sqlservercentral.com/articles/Stairway+Series/73785/ 作者:Tony Davis, 2012/01/27 翻译:刘琼滨. ...

  9. 第16周翻译:SQL Server中的事务日志管理,级别3:事务日志、备份和恢复

    源自: http://www.sqlservercentral.com/articles/Stairway+Series/73779/ 作者: Tony Davis, 2011/09/07 翻译:刘琼 ...

随机推荐

  1. mysql的1067错误 - 2

    上一篇博文<mysql的1067错误>中由于日志配置问题产生1067错误. 由于要升级MySQL到V5.6,所以拷贝my.ini和数据文件到新的系统上. 在启动服务时,又出现1067错误! ...

  2. webstorm入门1-主题和配色

    1.引子 以前介绍过 Sublime text 3 系列的文章,着重介绍了 Sublime text 3 如何下载.安装.插件.配置等内容.Sublime text 3的轻量和富扩展,为前端开发带来了 ...

  3. 【Demo 0006】Android 组件(Activity)

    本章学习要点:        1.  了解Activity基本概念;        2.  掌握Activity生命周期:        3.  掌握 Activity之间跳转:  

  4. hadoop 学习入门 一 云计算之旅

    一. 什么是云计算: 云计算是分布式计算.网格计算.并行计算.效用计算.网络存储.负载均衡.虚拟化.网络计算等传统计算技术的融合体. 二. 云计算的核心技术: 1 编程模型 2 海量数据分布存储技术 ...

  5. 使用nginx的rewrite实现代理指定文件夹命令方法

    使用nginx的rewrite实现代理指定文件夹命令方法 使用nginx代理Tomcat,Tomcat公布web的时候通常都是带着项目名称的. 比方项目名称为"aven".那么公布 ...

  6. Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码

    在android学习中,动作交互是软件中重要的一部分,其中的Scroller就是提供了拖动效果的类,在网上,比如说一些Launcher实现滑屏都可以通过这个类去实现.下面要说的就是上次Scroller ...

  7. OpenCV Python教程(3、直方图的计算与显示)

    转载请详细注明原作者及出处,谢谢! 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途什么的就直接略过去了. ...

  8. 自绘ListBox的两种效果

    本文利用Listbox自绘实现了两种特殊效果(见图),左边的风格是自己突然灵感触发想到的,右边的风格来自"C++ Builder 研究"的一个帖子,老妖用BCB实现了,这里则用Delphi实现它. 演 ...

  9. JAVA之成员变量初始化

    java中成员变量的初始化,如果是普通成员变量可以赋初值,如果没赋初值,则系统会自动赋初值.而对于局部变量必须手动赋初值. package MyText2; public class MyText1 ...

  10. Linux统计文件/目录数量ls -l | grep "^-" | wc -l匹配开头和结尾

    Linux统计文件数量 ls -l | grep "^-" | wc -l “^-”  一般文件 “^d” 目录文件 shell/vim中^表示开头 cat repatterns ...