首页 > 学院 > 开发设计 > 正文

T-SQL 语言基础(五)—— 流程控制语句

2019-11-08 20:32:15
字体:
来源:转载
供稿:网友

T-SQL 语言基础(五)—— 流程控制语句

一、BEGIN…END 语句
BEGIN PRINT 1; PRINT 2;END
二、IF…ELSE 语句
DECLARE @age INTSELECT @age = 15IF @age > 10 BEGIN PRINT '年龄大于'+ CAST(@age AS VARCHAR(5)) SELECT name,age FROM employee WHERE age > @age ENDELSE BEGIN PRINT '年龄小于等于' + CAST(@age AS VARCHAR(5)) SELECT name,age FROM employee WHERE age <= @age END
三、WHILE 语句
DECLARE @i INT,@j INT,@tmp VARCHAR(100)SET @i = 1SET @j = 1SET @tmp = ''PRINT '打印9*9乘法表'WHILE @i <= 9 BEGIN WHILE @j <= 9 BEGIN SET @tmp = @tmp + ' ' + CAST(@i*@j AS CHAR(2)) SET @j = @j + 1 END PRINT @tmp SET @tmp = '' SET @j = 1 SET @i = @i + 1 END
四、CASE 语句
-- CASE 等于判断,相当于枚举SELECT name,CASE dept_id WHEN 1 THEN '总经理办公室' WHEN 2 THEN '人力资源部' WHEN 3 THEN '行政部' WHEN 4 THEN '财务部' WHEN 5 THEN '销售部' WHEN 5 THEN '技术研发部' ELSE '其他部门' END AS deptFROM employee-- CASE WHEN 带条件DECLARE @num INT,@output NVARCHAR(10)SET @num = 19SET @output = CASE WHEN @num < 8 THEN '一个数小于 8' WHEN @num = 10 THEN '这个数是 10' WHEN @num / 3 = 0 THEN '这个数能被3整除' ELSE '这个数不在设定条件内' ENDPRINT @output
五、GOTO 语句
PRINT '执行第一句'GOTO labelPRINT '执行第二句'label: BEGIN PRINT '跳转到 LABEL 语句' PRINT 'GOTO 语句容易出现死循环' END
六、WAITFOR 语句
PRINT '打印第一句'GO -- 使用GO进行批处理才能清楚看到延迟效果WAITFOR DELAY '00:00:10' -- 延迟10秒查询PRINT '等待了10秒'WAITFOR TIME '15:21:10' -- 指定时间查询PRINT '在指定时间 15:21:10 查询'
七、RETURN 语句:用于退出函数或存储过程
八、TRY…CATCH 语句
BEGIN TRY PRINT '当前时间' PRINT getdate() INSERT employee VALUES('啊大',13) INSERT employee VALUES('啊大',13) END TRYBEGIN CATCH PRINT '出错消息为 ' + ERROR_MESSAGE()END CATCH

获取错误消息的函数

函数 说明
ERROR_NUMBER() 错误号
ERROR_SERVERITY() 严重性
ERROR_STATE 错误的状态号
ERROR_PROCEDURE 错误的存储过程或触发器的名称
ERROR_LINE 错误的行号
ERROR_MESSAGE 错误的消息文本

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表