SQL Server 流程控制
流程控制语句:
BEGIN ... END | WAITFOR | GOTO |
WHILE | IF ... ELSE | BREAK |
RETURN | CONTINURE |
1.BEGIN ... END
BEGIN ... END语句用于将多个Transact-SQL语句合为一个逻辑块。当流程控制语句必须执行一个包含两条或两条以上的T-SQL语句的语句块时,使用BEGIN ... END语句。
BEGIN
{sql_statement ... }
END
2.IF
IF<条件表达式>
{命令行 | 程序块}
IF...ELSE
1 IF <条件表达式>
{命令行1 | 程序块1}
ELSE
{命令行2 | 程序块2}
代码:
1 declare @x int
set @x=4
if @x%2=0
print '@x 是偶数'
else
print '@x 是奇数'
效果图:
3.CASE
CASE input_expression
WHEN when_expression THEN result_expression
[... n] ELSE else_result_expression END
代码:
use Practice
go
select *,备注=case
when Sex='girl' then '女'
when Sex='boy' then '男'
else '不识别'
end
from Info_Stu
效果:
4.WHILE
代码:
1 DECLARE @n int,@sum int
set @n=1
3 set @sum=0
4 while @n<=10
begin
set @sum=@sum+@n
set @n=@n+1
end
print @sum
效果:
5.WHILE...CONTINUE...BREAK
代码:
set @sum=0
while @x<10
begin
set @x=@x+1
if @x%2=0
begin
set @sum=@sum+@x
end
else
continue
end
print @sum
效果:
6.RETURN
RETURN语句用于查询或过程中无条件退出。RETURN语句可在任何时候用于从过程、批处理或语句块中退出,位于RETURN之后的语句不会被执行。
代码:
DECLARE @X INT
set @x=3
if @x>0
print'遇到return之前'
return
print'遇到return之后'
效果:
7.GOTO
GOTO命令用来改变程序执行的流程,使程序跳转到标识符指定的程序行再继续往下执行。
语法格式如下:
GOTO 标识符
标识符需要在其名称后加上一个冒号“:”。例如,“33:”,“loving:”
declare @x int
select @x=1
loving:
print @x
select @x=@x+1
while @x<=3 goto loving
效果:
8.WAITFOR
WAITFOR指定触发器、存储过程或事务执行的时间、时间间隔或事件;还可以用来暂时停止程序的执行,直到所设定的等待时间已过才继续往下执行。
语法格式如下:
WAITFOR {delay<'时间'> | TIME<'时间'>}
其中,“时间”必须为DATETIME类型的数据,如 11:15:27,但不能包括日期
delay:表示延时;
time:表示定时。
代码:
waitfor delay '00:00:05'
print '祝你生日快乐!'
效果:
SQL Server 流程控制的更多相关文章
- Sql Server 流程控制语句
T-SQL中用来编写流程控制模块的语句有:BEGIN...AND语句.IF...ELSE语句.CASE语句.WHILE语句.GOTO语句.BREAK语句.WAITFOR语句和RETURN语句. 批处理 ...
- SQL Server 2005 控制用户权限访问表
转自:http://www.cnblogs.com/gaizai/archive/2011/07/14/2106617.html 一.需求 在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限 ...
- SQL Server sp_configure 控制内存使用
背景知识: sp_configure 显示或更改当前服务器的全局配置设置(使用 sp_configure 可以显示或更改服务器级别的设置.) 查看 全局配置值 方法 1.execute sp_co ...
- sql server事物控制
一.多个数据库 1.存储过程 2.Commit写在 Try...Catch后面 protected void Button1_Click(object sender, EventArgs e) ...
- PL/SQL 03 流程控制
--IF语法IF condition THEN statements;[ELSIF condition THEN statements;][ELSE statements;]END IF; -- ...
- SQL Server 权限控制
根据数据库Schema限制用户对数据库的操作行为 授予Shema dbo下对象的定义权限给某个用户(也就是说该用户可以修改架构dbo下所有表/视图/存储过程/函数的结构) use [Your DB N ...
- SQL Server Governer 控制资源的使用
--- Create a resource pool for production processing --- and set limits. USE master; GO CREATE R ...
- Sql Server 内存相关计数器以及内存压力诊断
在数据库服务器中,内存是数据库对外提供服务最重要的资源之一, 不仅仅是Sql Server,包括其他数据库,比如Oracle,MySQL等,都是一类非常喜欢内存的应用. 在Sql Server服务器中 ...
- 【转】T-SQL查询进阶—理解SQL Server中的锁
简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于大多数数据库来说是需要同时处理多个查 ...
随机推荐
- python快排算法
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列. ...
- memcached的最佳实践方案(转)
基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 ...
- some experience duing wrting myweb in php
书写风格:一切以 最高效, 最简单为 标准!! 不必管格式的规范了! 在html中, 的属性是用双引号, 在php, tp中, 没有特殊情况, 都是用单引号. vim 下how to format c ...
- hdu4970 Killing Monsters (差分数列)
2014多校9 1011 http://acm.hdu.edu.cn/showproblem.php?pid=4970 Killing Monsters Time Limit: 2000/1000 M ...
- Python 文件遍历
Python具备强大的解析能力,其中列表解析甚至可以作用在某些并非实际存储的序列上,任何可遍历对象都可以,包括可自动逐步读取的文件. 例如下面的代码将会从逐行读取一个文本文件,并且在每一行的最后加上一 ...
- 【CISP笔记】安全漏洞与恶意代码(2)
恶意代码自我保护 进程保护 进程守护 超级权限 检测对抗 反动态调试 反静态调试 恶意代码检测技术 特征码扫描 沙箱技术 行为检测 恶意代码分析技术 静态分析 需要实际执行恶意代码,它通过对其二进制文 ...
- 基础知识系列☞C#中数组Array、ArrayList和List三者的区别
数组() #region 数组 //初始化方式_0:先声明再赋值 ]; weekDays_0[] = "Sun"; weekDays_0[] = "Mon"; ...
- select2
.select2-container .select2-choice { height: 34px; line-height: 34px; } .自定义 组件高度 在css 里面设置 .select2 ...
- android 读取SQLite android could not open the database in read/write mode错误
由于AndroidManifest.xml文件中uses-permission没有设置权限问题 <uses-permission android:name="android.permi ...
- HDOJ 1576 A/B
数论水题... A/B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...