目录 0. 背景说明 1. 建立异常信息表ErrorLog 2. 建立保存异常信息的存储过程 3. 建立在SQL Server中打印异常信息的存储过程 4. 建立一个用于测试的存储过程抛出异常进行测试 5. 参考信息 shanzm-2020年5月13日 0. 背景说明 之前极其的抱怨使用存储过程,觉得存储过程不应该出现在现在的新项目中, 但是最近研究存储过程,发现存储过程的优点也是及其的耀眼! 之前只盯着存储过程的缺点,有点一叶障目了。 前一周自己摸索着写的存储过程,写的太幼稚了,不规范。 之前在 《存储过程——C#中调用存储过程的简单示例》 中, 我们在存储过程中的事务中定义了一个临时变量 @sum ,在事务的每一句sql语句后都 @sum+@@error ,最后根据 @sum 是否为0来判断是否有异常, 如果没有异常则 @@error 为0,有异常则 @@error 值为错误代码,即一定不为0 所以,可以通过最终的@sum判断是否有异常, 但是有一点要说明的是, @@error 对那种重大错误无法捕捉,而且 @@error 只对其前一句sql语句生效 所以,建议还是使用TRY……CATCH 这里定义一个捕获异常的存储过程,实现将存储过程中出现的异常记录在数据库的异常信息表中。 本示例中,全部的存储过程都是在一个新建的测试数据库ShanTest数据库中进行的 1.