日期:2014-05-18  浏览次数:20534 次

大家都来谈谈在存储过程里是如何捕获错误的!!!
一个人的经验是有限的,花点时间来总结吧!

------解决方案--------------------
我是意思是在写好存储过程,调试完毕后,在程序运行时如何捕获错误!
1 存储过程里没有try ... catch 吧,只能在程序里try... ctach捕获,这是后话
2 @@error 只能捕获最近一条的sql语句执行情况,我的存储过程是很长的,难道每执行一次sql 就判断下@@error,然后回滚?

---------------------------------
对于程序调度而言, 查询分析器支持对存储过程的调试, 并且可以支持设置断点之类(查询分析器, 打开对象资源管理器(按F8), 然后找到存储过程, 右键--调试)

自己写程序似乎不行(没有找到可以如何实现的方法)


try catch 是 sql 2005 新增的, 它是存储过程中用的, 不是存储过程写好后用的, 它可以避免@@error 需要每条语句都判断的麻烦

@@error 必须在每条可能出错的语句后都判断, 如果出错进行相应的处理(例如直接回滚, 或者跳到指定的错误处理的地方等)