Vin*_*inu 5 sql t-sql database sql-server
在编写事务SQL操作时,我经常使用@@ ERROR来确定事务期间是否发生了某些问题。但是我真的不知道与使用TRY ... CATCH进行异常处理相比,它的优缺点是什么,或者哪个更好。请澄清这些区别和有用的场景之间的区别。
在此先感谢Vinu。
@@ERROR一旦发生错误,就会被填充,但是如果在错误发生后执行另一个语句,@@ERROR则会将其值重置为NULL,因此预测可能发生错误的位置并将其值存储到变量等似乎很麻烦。
就好像您正在使用TRY...CATCH块一样,一旦TRY块中发生错误,您的控制就会跳转到该CATCH块,并且您可以使用系统错误函数,它可以为您提供有关错误的详细信息。如果没有发生错误,则控件永远不会进入CATCH块。
其中一些系统错误函数是:
ERROR_LINE()
EROR_MESSAGE()
ERROR_Severity()
ERROR_PROCEDURE()
ERROR_STATE()
Run Code Online (Sandbox Code Playgroud)
因此,我个人认为使用它TRY...CATCH可以让你作为开发人员的生活变得更加轻松。