记录备忘,以前基本还没用到过sql 的try catch;但是在数据清理某些数据,使用到触发器和存储过程的时候,try catch就必须被使用了;
例如:
当try内容无error时候,try内容返回真实值;
当try内容有error时候,catch内容可获取异常值;
【这种方式好像只能获取到严重级别20以下的error】
基本用法得这样使用:
declare @errors as int
SET @errors=0
begin try
select 3/2
end try
begin catch
set @errors= @errors+ERROR_SEVERITY()
END CATCH
select @errors
if @errors=0
...
if @errors>0
...
有同学肯定会问,为什么不用@@error;
@@error是一个全局变量,只能发现前一行执行的错误获取,
而用if判定之后@@error也变化了,很多时候没有try catch好用;
但是,也是看个人喜欢和习惯的!