以下例子针对动态语句的执行进行异常捕获(即begin try中的语句), 出错后直接会进入到 begin catch的语句块当中。
-- 将数据从临时表t_test,导换到结果表
set @str_sql ='insert into ' + @str_tablename + 'select * from t_test'
begin try
execute (@str_sql);
end try
begin catch
set @str_log = 'error: can not import t_test to ' + @str_tablename + '.';
exec p_base_writelog @@procid, 2,'collect',@str_log;
return 1;
end catch