您的位置:首页 > 数据库

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

2017-02-11 15:50 585 查看

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

一、BEGIN…END 语句

BEGIN
PRINT 1;
PRINT 2;
END


二、IF…ELSE 语句

DECLARE @age INT
SELECT @age = 15
IF @age > 10
BEGIN
PRINT '年龄大于'+ CAST(@age AS VARCHAR(5))
SELECT name,age FROM employee WHERE age > @age
END
ELSE
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 = 1
SET @j = 1
SET @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 dept
FROM employee
-- CASE WHEN 带条件
DECLARE @num INT,@output NVARCHAR(10)
SET @num = 19
SET @output = CASE
WHEN @num < 8 THEN '一个数小于 8'
WHEN @num = 10 THEN '这个数是 10'
WHEN @num / 3 = 0 THEN '这个数能被3整除'
ELSE '这个数不在设定条件内'
END
PRINT @output


五、GOTO 语句

PRINT '执行第一句'
GOTO label
PRINT '执行第二句'

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 TRY
BEGIN CATCH
PRINT '出错消息为 ' + ERROR_MESSAGE()
END CATCH


获取错误消息的函数

函数说明
ERROR_NUMBER()错误号
ERROR_SERVERITY()严重性
ERROR_STATE错误的状态号
ERROR_PROCEDURE错误的存储过程或触发器的名称
ERROR_LINE错误的行号
ERROR_MESSAGE错误的消息文本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  语言 T-SQL