SQL Server编程(01)流程控制
批处理
应用程序向SqlServer发送的一组命令,Sql Server会将其编译成一个可执行单元,称为执行计划,执行计划中的语句每次执行一条。
每个不同的批处理用GO命令分割。GO命令不是SQL语句,它是告诉SSMS将GO之前的语句作为批处理一起发送给数据库引擎。
注意:GO命令不能和其它SQL命令写在同一行上!局部变量的作用域限定在一个批处理中,不可以在GO后面引用,否则报错!
另外,一次提交多个批处理时,一个批处理出错,只影响其本身继续执行,而不会影响下一个批处理的执行。
语句块
T-SQL中使用BEGIN……END来指定语句块。
注意:语句块中声明的变量,其作用域是在整个批处理中,也就是说,在BEGIN……END中定义的变量,可以在END之外进行访问,直到遇见GO。
BEGINdeclare @str nvarchar(50)set @str='abc'print(@str) END print(@str) --此处可以正常访问 go print(@str) --此处报错:必须声明标量变量 "@str"。
条件语句
IF…ELSE…语句
以下代码纯属演示:
declare @num int set @num=3if(@num=1)begin--这里可以写多行代码--如果是一行,可以省略begin...endprint 'num=1'end else if(@num=2)--此处只有一行代码,省略begin...endprint 'num=2' elseprint 'num不等于1,也不等于2'
case…when…then…end语句
貌似只能用在select语句中?两种用法:
第一种:
declare @num int set @num=3 select case @numwhen 1 then 'num=1'when 2 then 'num=2'else 'num不等于1,也不等于2'end as col
第二种:
declare @num int set @num=3 select case --case后面不写表达式,判断表达式写在when后面when @num=1 then 'num=1'when @num=2 then 'num=2'else 'num不等于1,也不等于2'end as col
貌似只能用在select语句中?我试着把case…when…then…end脱离select使用,但没有成功……
循环语句
while循环
直接来一个简单的例子吧:
declare @num int set @num=3 while(@num>0) --括号貌似也不是必需的beginprint @numset @num=@num-1end go
使用goto语句实现循环
goto语句其实是用来跳转的,据说乱用goto会把代码变得比意大利面更乱,因此许多编程语言中的goto基本都不怎么用。
在T-SQL中,我们可以使用goto来实现循环的处理,代码如下:
declare @num int set @num=3 lb: --标记,名字可以自己起 print @num if(@num>1) beginset @num-=1;goto lb end
本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/p/4916396.html,如需转载请自行联系原作者
SQL Server编程(01)流程控制相关推荐
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- Sql Server编程
Sql Server编程 1.注释语句 单行 -- 多行 /* */ 2.申明变量 declare @la ...
- Visual C#的SQL Server编程
Visual Studio.NET的中文Beta 2版本推出已有一段时日了,相比早期的Beta 1版本,新版本各方面都有很大的变化,其中包括SQL Server编程方面,在中文Beta 2中,数据库的 ...
- SQL Server安全机制–如何控制用户能够在报告中查看哪些数据
介绍 ( Introduction ) A few years back, a client asked me to implement a quick and dirty "securit ...
- sql server计算机用户权限,SQL Server新增用户并控制访问权限设置。
新增用户: 一.进入数据库:[安全性]->[登录名]->[新建登录名] 二.在常规选项卡中.如图所示,创建登录名.注意设置默认的数据库. 三.在[用户映射]下设置该用户所能访问的数据库.并 ...
- SQL Server 2017 安装流程
我们在做学生系统的时候都会要求安装数据库,否则我们的学生系统便无法运行,下面跟大家简单分享一下我的SQL Server 2017的安装流程: 第一步: 安装SQL数据库电脑必须 ...
- SQL Server编程(06)触发器
SQL Server 通过触发器用来保证业务逻辑和数据的完整性.在SQL Server中,触发器是一种特殊类型的存储过程,可在执行语言事件时自动触发.SQL Server中触发器包括三种:DML触发器 ...
- SQL server笔记01(数据查询前内容)
数据库的创建和管理 1.创建数据库 1.create database databasename 2.create database databasename on (name=databasenam ...
- 存储过程 SQL server(01)
例子: ALTER PROCEDURE [dbo].[XXOO_ifelse] @Source_ID intAS DECLARE @temp VARCHAR(12) BEGIN SET @Source ...
最新文章
- jquery操作select option使用小结
- 普通计算机网络和工业控制网络的区别,浅谈工控电脑和普通电脑的区别
- 腾讯官方游戏《陆战之王 3D坦克大战》
- HTTP和HTTPS详解
- docker安装rabbitmq及简单管理
- centos自带python2.6升级到python2.7。并解决yum pip easy_install pip等模块兼容性问题
- Replication的犄角旮旯(四)--关于事务复制的监控
- java编程 停等协议_在应用层模拟实用停等协议
- The file is absent or does not have execute permission This file is needed to run this program
- nc加载不了java,用友NC系统使用过程中常见问题和解决方法
- 强烈推荐 20 个免费和开源数据可视化工具
- python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
- vue鼠标划过移入移出触发方法
- aspose-word的简单使用以及转pdf线上乱码
- 云上全流程透明性备品备件协同管理
- picker插件 vue 移动端_移动端的picker参考vux
- MySQL源代码的海洋中游弋 初探MySQL之SQL执行过程
- 免单拼团商城小程序开发
- 清华大学五道口金融学院2022年博士生(联合培养项目)招生简章
- word 对齐方式 左对齐,居中,两端对齐 的区别 (图示)
热门文章
- 如何给CSDN博客添加个人微信二维码或自定义栏目
- jenkins配置sonar并扫描C#代码
- mysql怎么看历史最高连接数_MySQL数据库怎么查看和修改最大连接数
- 又来啦 11道软件测试经典面试题
- Android提供了哪些主要UI控件,Android必备:Android UI控件的了解与学习
- wincc7的常用c语言,wincc几个常用c语言编程-20210324073153.docx-原创力文档
- 机顶盒ttl无法输入_一个作业,多个TTL——Flink SQL 细粒度TTL配置的实现(二)
- rust爱拍视频解说_抖音视频制作必备Mac神器,上热门儿不是事儿
- oracle catalog命令,使用Catalog命令注册RMAN备份集
- DE 32: Limit Cycles