gpt4 book ai didi

tsql - 如何在存储过程中进行错误处理

转载 作者:行者123 更新时间:2023-12-02 05:07:25 24 4
gpt4 key购买 nike

我目前正在使用 Sybase ASE 12.5。我有下面的代码:

create procedure test_launcher_fail_wrapper
as
begin

select convert(numeric(2),1234345)

if @@error != 0
begin
select "SP failed to execute"
return 1
end

end

在这里,我试图将一个非常大的值/数量 (1234345) 转换为数字大小 2。这是不可能的,它会产生错误。

问题:

  1. @@error 在这里有用吗?我运行了这个 SP 但它从未进入错误处理
  2. 如何错误处理这类场景?

最佳答案

我对待过程中的错误处理类似于应用程序中的错误处理——如果你有机会通过处理错误来贡献一些实际值(value),那么一定要这样做,但如果你真的无能为力帮助,那么你最好还是放手吧。

作为添加值的示例,我有一个或两个在错误消息中添加上下文信息的过程,例如与更新操作冲突的 ID 值列表。在这种特殊情况下,我知道 proc 的上游消费者将记录此错误,并且文本将可供运算符(operator)使用,运算符(operator)会在调试问题时发现此信息很有值(value)。我也知道虽然这种情况是一个真正的错误,但众所周知它会不时发生,因此格式化错误的努力是值得的。

关于tsql - 如何在存储过程中进行错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9582885/

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