|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。 |
|