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

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错误的消息文本
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值