gpt4 book ai didi

sql - 在 SQL Server 中使用 TRY...CATCH 和 @@ERROR 有什么区别?

转载 作者:太空狗 更新时间:2023-10-30 01:52:10 26 4
gpt4 key购买 nike

在编写事务SQL操作时,我经常使用@@ERROR来查找事务期间是否发生了某些问题。但我真的不知道它与使用 TRY...CATCH 的异常处理相比有什么优点和缺点,或者哪个更好。请澄清它们之间的区别以及它们有用的场景。

提前致谢,维努。

最佳答案

@@ERROR 将在发生错误时立即填充,但如果在错误发生后执行另一个语句,@@ERROR 将其值重置为 NULL,因此预测可能发生错误的位置并将其值存储到变量等似乎很麻烦。

如果你正在使用 TRY...CATCH block ,一旦 TRY block 中发生错误,你的控件就会跳转到 CATCH block 并且您可以使用系统错误功能,它可以为您提供有关错误的详细信息。如果没有错误发生,则控件永远不会进入 CATCH block 。

其中一些系统错误函数是:

ERROR_LINE()
EROR_MESSAGE()
ERROR_Severity()
ERROR_PROCEDURE()
ERROR_STATE()

因此,我个人认为使用 TRY...CATCH 可以让开发人员的生活轻松很多。

关于sql - 在 SQL Server 中使用 TRY...CATCH 和 @@ERROR 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20263337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com