gpt4 book ai didi

sql - 如何报告 SQL Server 用户定义函数的错误

转载 作者:行者123 更新时间:2023-12-01 16:36:40 25 4
gpt4 key购买 nike

我正在 SQL Server 2008 中编写一个用户定义的函数。我知道函数不能以通常的方式引发错误 - 如果您尝试包含 RAISERROR 语句 SQL 返回:

Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.

但事实是,该函数接受一些输入,这些输入可能无效,如果是无效的,则该函数无法返回任何有意义的值。那我该怎么办?

当然,我可以返回 NULL,但对于任何使用该函数的开发人员来说,解决此问题都很难。我还可能导致除以零或类似的结果 - 这会生成一条错误消息,但会产生误导性的消息。有什么办法可以以某种方式报告我自己的错误消息吗?

最佳答案

您可以使用 CAST 抛出有意义的错误:

create function dbo.throwError()
returns nvarchar(max)
as
begin
return cast('Error happened here.' as int);
end

然后Sql Server会显示一些帮助信息:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'Error happened here.' to data type int.

关于sql - 如何报告 SQL Server 用户定义函数的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485034/

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