BEGIN IF 11>2 BEGIN RAISERROR('生成编号失败1,请确认!',18,0); END PRINT '000' BEGIN TRY PRINT 111 RAISERROR('生成编号失败2,请确认!',18,0); PRINT 222 END TRY BEGIN CATCH RAISERROR('生成编号失败3,请确认!',18,0); END CATCH END
000 111 消息 50000,级别 18,状态 0,第 4 行 生成编号失败1,请确认! 消息 50000,级别 18,状态 0,第 15 行 生成编号失败3,请确认!
RAISERROR('生成编号失败1,请确认!',18,0);--生成错误信息1
继续执行PRINT '000'
继续执行PRINT 111
RAISERROR('生成编号失败2,请确认!',18,0);--生成错误信息2,错误严重程度为18(在11-19之间,可以被catch捕获)
catch捕获错误信息2,生成错误信息3,相当于对错误信息2进行了处理
RAISERROR在生成错误信息时,不会中断后面sql的执行,所以会输出你看到的结果
没有return,当然会继续执行