仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1037|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之SQL 流程把持命令

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:18:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Transact-SQL言语利用的流程把持命令与罕见的程序计划言语相似次要有以下几种把持命令。

4.6.1IF…ELSE
其语法以下:
IF<前提表达式>
<命令行或程序块>
[ELSE[前提表达式]
<命令行或程序块>]
个中<前提表达式>能够是各类表达式的组合,但表达式的值必需是逻辑值“真”或“假”。ELSE子句是可选的,最复杂的IF语句没有ELSE子句部分。IF…ELSE用来判别当某一前提建立时实行某段程序,前提不建立时实行另外一段程序。假如不利用程序块,IF或ELSE只能实行一条命令。IF…ELSE能够举行嵌套。

例4-9
declare@xint,@yint,@zint
select@x=1,@y=2,@z=3
if@x>@y
printx>y--打印字符串x>y
elseif@y>@z
printy>z
elseprintz>y
运转了局以下
z>y
注重:在Transact-SQL中最多可嵌套32级。4.6.2BEGIN…END
其语法以下:
BEGIN
<命令行或程序块>
END
BEGIN…END用来设定一个程序块,将在BEGIN…END内的一切程序视为一个单位实行BEGIN…END常常在前提语句,如IF…ELSE中利用。在BEGIN…END中可嵌套别的的BEGIN…END来界说另外一程序块。
4.6.3CASE
CASE命令有两种语句格局:
CASE<运算式>
WHEN<运算式>THEN<运算式>

WHEN<运算式>THEN<运算式>
[ELSE<运算式>]
END
CASE
WHEN<前提表达式>THEN<运算式>
WHEN<前提表达式>THEN<运算式>
[ELSE<运算式>]
END
CASE命令能够嵌套到SQL命令中。
例4-10:调剂员工人为,事情级别为“1”的上调8%,事情级别为“2”的上调7%,事情级别为“3”的上调6%,别的上调5%。
usepangu
updateemployee
sete_wage=
case
whenjob_level=’1’thene_wage*1.08
whenjob_level=’2’thene_wage*1.07
whenjob_level=’3’thene_wage*1.06
elsee_wage*1.05
end
注重:实行CASE子句时,只运转第一个婚配的子名。
4.6.4WHILE…CONTINUE…BREAK
其语法以下:
WHILE<前提表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
[命令行或程序块]
END
WHILE命令在设定的前提建立时会反复实行命令行或程序块。CONTINUE命令可让程序跳过CONTINUE命令以后的语句,回到WHILE轮回的第一行命令。BREAK命令则让程序完整跳出轮回,停止WHILE命令的实行。WHILE语句也能够嵌套。
例4-11:
declare@xint@yint@cint
例4-11:
declare@xint,@yint,@cint
select@x=1,@y=1
while@x<3
begin
print@x--打印变量x的值
while@y<3
begin
select@c=100*@x+@y
print@c--打印变量c的值
select@y=@y+1
end
select@x=@x+1
select@y=1
end
运转了局以下
1
101
102
2
201
202

4.6.5WAITFOR
其语法以下:
WAITFOR{DELAY<‘工夫’>|TIME<‘工夫’>
|ERROREXIT|PROCESSEXIT|MIRROREXIT}
WAITFOR命令用来临时中断程序实行,直到所设定的守候工夫已过或所设定的工夫已到才持续往下实行。个中‘工夫’必需为DATETIME范例的数据,如:‘11:15:27’,
但不克不及包含日期各关头字寄义以下:
<P>

  • DELAY用来设定守候的工夫最多可达24小时;
  • TIME用来设定守候停止的工夫点;
  • ERROREXIT直各处理非一般中止;
  • PROCESSEXIT直各处理一般或非一般中止;
  • MIRROREXIT直到镜像设备失利。
例4-12守候1小时2分零3秒后才实行SELECT语句
waitfordelay’01:02:03’
select*fromemployee
例4-13:比及早晨11点零8分后才实行SELECT语句
waitfortime’23:08:00’
select*fromemployee
4.6.6GOTO
语法以下:
GOTO标识符
GOTO命令用来改动程序实行的流程,使程序跳到标有标识符的指定的程序行再持续往下实行。作为跳转方针的标识符可为数字与字符的组合,但必需以“:”开头,如‘12:’或‘a_1:’。在GOTO命令行,标识符后不用跟“:”。
例4-14分行打印字符‘1’、‘2’、‘3’、‘4’、‘5’
declare@xint
select@x=1
label_1
print@x
select@x=@x+1
while@x<6
gotolabel_1
4.6.7RETURN
语法以下
RETURN[整数值]
RETURN命令用于停止以后程序的实行,前往到上一个挪用它的程序或别的程序。在括号内可指定一个前往值。
例4-15
declare@xint@yint
select@x=1@y=2
ifx>y
return1
else
return2
假如没有指定前往值,SQLServer体系会依据程序实行的了局前往一个内定值,如
表4-5所示。


假如运转历程发生了多个毛病,SQLServer体系将前往相对值最年夜的数值;假如此时用户此时界说了前往值,则以前往用户界说的值。RETURN语句不克不及前往NULL值。
mysqld进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-19 07:37:25 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
小魔女 该用户已被删除
板凳
发表于 2015-1-24 15:46:22 来自手机 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
谁可相欹 该用户已被删除
地板
发表于 2015-2-2 05:55:10 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
若天明 该用户已被删除
5#
 楼主| 发表于 2015-2-7 17:00:28 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
若相依 该用户已被删除
6#
发表于 2015-2-22 18:16:30 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
分手快乐 该用户已被删除
7#
发表于 2015-3-7 01:45:57 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
爱飞 该用户已被删除
8#
发表于 2015-3-14 06:39:10 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
活着的死人 该用户已被删除
9#
发表于 2015-3-21 01:21:51 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表