DECLARE@sint@iintSET@s-=0SET@i-1WHILE @i<=100BEGINSET@s-@s+@iSET@i=@i+1ENDSELECT@i,@s例如:显示字符串"China"中每个字符的ASCII值和字符DECLARE@position int,@stringchar(8)SET@position=1SET@string-China'WHILE@position<=DATALENGTH(@string)BEGINSELECTASCII(SUBSTRING(@string,@position,1)SELECT SUBSTRING(@string,@position, 1)SET@position=@position+1END2.BREAK语句一般用于循环语句中,用于退出本层循环。3.CONTINUE语句一般用于循环语句中,结束本次循环,进行下一次循环条件的判断。GOTO语句10.3.3语法格式:GOTOlabel+Label是指向的语句标号,标号必须符合标识符规则。标号的定义形式:+label:语句10.3..4RETURN语句用于从过程、批处理或语句块中无条件退出,不执行位于RETURN之后的语句。语法格式:RETURNiteerepressioninteger_eaprssion 将整型表达式的值返回。存储过程可以给调用过程或应用程序返回整型值
DECLARE @s int,@i int SET @s=0 SET @i=1 WHILE @i<=100 BEGIN SET @s=@s+@i SET @i=@i+1 END SELECT @i,@s 例如:显示字符串"China"中每个字符的 ASCII 值和字符。 DECLARE @position int,@string char(8) SET @position=1 SET @string='China' WHILE @position <=DATALENGTH(@string) BEGIN SELECT ASCII(SUBSTRING(@string,@position,1)) SELECT SUBSTRING(@string,@position,1) SET @position=@position+1 END 2.BREAK 语句 一般用于循环语句中,用于退出本层循环。 3. CONTINUE 语句 一般用于循环语句中,结束本次循环,进行下一次循环条件的判断。 10.3.3 GOTO 语句 10.3.4 RETURN 语句 用于从过程、批处理或语句块中无条件退出,不执行位于 RETURN 之后的语句
DECLARE@avgfloatIFNOTEXISTS(SELECT*FROMscoreWHERESno=108)GOTO labellBEGINPRINT'108学生的平均成绩:SELECT@avg=AVG(degree) FROM score WHERE sno='108PRINT@avgRETURNENDlabell:PRINT'108学生无成绩CREATEPROCmypro@nochar(5)ASRETURN(SELECTAVG(degree)FROMscoreWHEREsno-@no)DECLARE@nochar(5),@avgfloatSET@n0='108EXECavg=mypro@noSELECT@no,@avgWAITFOR语句10.3..5语法格式:WAITFOR DELAY 'time'ITIME 'time'例如:语句设定在早上八点执行存储过程,添加角色Manager。BEGIN+WAITFORTIME'8:OO+EXECUTE sp_addrole "ManagerEND+BEGINWAITFORDELAY00:00:05EXEC sp_addrole'Manager'END10.4函数-编程语言中的函数是用于封装经常执行的逻辑的子例程。任何代码若必须执行函数所包含的逻辑,都可以调用该函数,而不必重复所有的函数逻辑。SQLServer2000支持两种函数类型:内置函数和用户定义函数
DECLARE @avg float IF NOT EXISTS(SELECT * FROM score WHERE sno='108') GOTO label1 BEGIN PRINT '108 学生的平均成绩:' SELECT @avg=AVG(degree) FROM score WHERE sno='108' PRINT @avg RETURN END label1: PRINT '108 学生无成绩' CREATE PROC mypro @no char(5) AS RETURN (SELECT AVG(degree) FROM score WHERE sno=@no) DECLARE @no char(5),@avg float SET @no='108' EXEC @avg=mypro @no SELECT @no,@avg 10.3.5 WAITFOR 语句 例如:语句设定在早上八点执行存储过程 ‘,添加角色 Manager’。 BEGIN WAITFOR DELAY '00:00:05' EXEC sp_addrole 'Manager' END 10.4 函数 ◼ 编程语言中的函数是用于封装经常执行的逻辑的子例程。任何代码若必须执行函数 所包含的逻辑,都可以调用该函数,而不必重复所有的函数逻辑。 ◼ SQL Server 2000 支持两种函数类型:内置函数和用户定义函数