批处理

应用程序向SqlServer发送的一组命令,Sql Server会将其编译成一个可执行单元,称为执行计划,执行计划中的语句每次执行一条。

每个不同的批处理用GO命令分割。GO命令不是SQL语句,它是告诉SSMS将GO之前的语句作为批处理一起发送给数据库引擎。

注意:GO命令不能和其它SQL命令写在同一行上!局部变量的作用域限定在一个批处理中,不可以在GO后面引用,否则报错!

另外,一次提交多个批处理时,一个批处理出错,只影响其本身继续执行,而不会影响下一个批处理的执行。

语句块

T-SQL中使用BEGIN……END来指定语句块。

注意:语句块中声明的变量,其作用域是在整个批处理中,也就是说,在BEGIN……END中定义的变量,可以在END之外进行访问,直到遇见GO。

BEGIN
declare @str nvarchar(50)
set @str='abc'
print(@str)
END
print(@str) --此处可以正常访问
go
print(@str) --此处报错:必须声明标量变量 "@str"。

条件语句

IF…ELSE…语句

以下代码纯属演示:

declare @num int
set @num=3 if(@num=1)
begin
--这里可以写多行代码
--如果是一行,可以省略begin...end
print 'num=1'
end
else if(@num=2)
--此处只有一行代码,省略begin...end
print 'num=2'
else
print 'num不等于1,也不等于2'

case…when…then…end语句

貌似只能用在select语句中?两种用法:

第一种:

declare @num int
set @num=3
select
case @num
when 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) --括号貌似也不是必需的
begin
print @num
set @num=@num-1
end
go

使用goto语句实现循环

goto语句其实是用来跳转的,据说乱用goto会把代码变得比意大利面更乱,因此许多编程语言中的goto基本都不怎么用。

在T-SQL中,我们可以使用goto来实现循环的处理,代码如下:

declare @num int
set @num=3
lb: --标记,名字可以自己起
print @num
if(@num>1)
begin
set @num-=1;
goto lb
end

SQL Server编程(01)流程控制的更多相关文章

  1. SQL Server 进阶 01 数据库的设计

    SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...

  2. Oracle与SQL SERVER编程差异分析(入门)

    网上有关Oracle与SQL SERVER性能差异的文章很多,结论往往是让你根据数据量与预算来选择数据库.但实际项目中,特别是使用 .Net 开发的系统,支持以上两种数据库或者更多已经成为Boss的普 ...

  3. SQL Server编程系列(2):SMO常用对象的有关操作

    原文:SQL Server编程系列(2):SMO常用对象的有关操作 在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的 ...

  4. SQL Server编程系列(1):SMO介绍

    原文:SQL Server编程系列(1):SMO介绍 续篇:SQL Server编程系列(2):SMO常用对象的有关操作 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己 ...

  5. (转) SQL Server编程系列(1):SMO介绍

    最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...

  6. [转]SQL Server编程:SMO介绍

    转自:周公 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文 ...

  7. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

  8. 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述

    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...

  9. SQL SERVER中的流程控制语句

    流程控制语句 是指用来控制程序运行和流程分至点额命令.一般指的是逻辑计算部分的控制. 1.Begin End语句 封装了多个T-SQL语句组合,将他们组成一个单元来处理. 一般在条件查询或者循环等控制 ...

随机推荐

  1. 利用ZTree链接数据库实现 [权限管理]

    最近想研究权限管理,看群里有人发了ZTrees模板,我看了下,觉得笔easyUI操作起来更灵活些,于是就开始研究了. 刚开始从网上找了找了个Demo,当然这个并没有实现权限啥的,但实现了前台调用Aja ...

  2. iOS-- pod常用命令

  3. scrum阶段总结

    项目预期计划: 确定编码规范. 根据原型图,设计并实现UI,添加各个界面,按钮,对话框,列表,窗口,导航等,理清各个界面的跳转逻辑. 学习测试技巧,编写测试用例. 实现需求文档中提出的功能,分别为:景 ...

  4. js函数声明

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. Oracle SQL Developer 添加SQLServer 和Sybase 连接

    来源于: http://blog.csdn.net/kk185800961/article/details/8602306 1. 开始只有Oracle 和access 连接 2. 打开Oracle S ...

  6. Android新旧版本Notification

    Android新旧版本Notification 在notification.setLatestEventInfo() 过时了 以前: NotificationManager mn = (Notific ...

  7. ScrollView内部元素如何做到fill_parent 或者 match_parent?

    转  : http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0704/1629.html ScrollView滚动视图是指当拥有很多 ...

  8. iOS开发中的错误整理,iOS9之后的UIWindow(TopWindow)以及UIWindow与statusBar的关系

    iOS9之后的UIWindow的问题(TopWindow),以及UIWindow与statusBar之间的联系 1.出现的问题 iOS9之后UIWindow必须要指定一个根控制器,不然会报错!iOS9 ...

  9. iOS开发小技巧--判断控件是否显示在当前窗口

    一.判断控件是否显示在当前窗口,需要同时满足一下条件: 控件的Hidden = NO; 控件的Alpha >= 0.01; self.window = keyWindow; 主窗口的bounds ...

  10. chrome 26.0.XXX版本下media query流媒体查询有问题的bug

    这段代码什么意思: @media only screen and (max-width: 1360px)  当用户的界面小于等于1360px的时候, 会加载该流媒体样式(此时的界面是包含滚动条的): ...