SQL UDF 中的错误处理
Posted
技术标签:
【中文标题】SQL UDF 中的错误处理【英文标题】:Error Handling in SQL UDF 【发布时间】:2017-04-20 12:26:26 【问题描述】:我正在 SQL Server 中创建 UDF。我不能在用户定义的函数中使用 try-catch 块。如何处理 UDF 中的异常或错误?
CREATE FUNCTION GET_POLICY_NO
(@POLICYID nvarchar(15))
RETURNS varchar(30)
AS
BEGIN
declare @Return varchar(30)
select @return = (SELECT POLICY_NO FROM tblPolicy WHERE POLICY_ID = @POLICYID)
return @return
end
虽然 tblPolicy 不存在,但它会报错。像SP一样怎么处理?
【问题讨论】:
最好把你的代码粘贴到这里,如果不查看你的代码就无济于事......为什么你不能使用 try 和 catch 块? @long 在问题中添加代码。 你可以试试我的回答吗 创建一个总是失败的函数有什么意义? 以上代码只是举例。这不是我的要求。其实这个问题是在一次采访中被问到的。 “如何处理错误。在 Udf 中” 【参考方案1】:您应该检查 This 以获得一些答案
我也有一些建议:
-
由于您无法在函数中打印或使用 try catch 块,因此请改用存储过程,尽管我认为您无法捕获“Invalid object name 'tblPolicy'”错误。我建议检查表是否存在,然后执行查询。
希望对你有帮助。
【讨论】:
以上代码只是举例。这不是我的要求。实际上这个问题是在一次采访中被问到的。 “如何处理错误。在 Udf 中” @SurajKMad 我明白了,但这有点误导,而且我相信您在提问之前可以找到很多关于这个主题的信息!干杯以上是关于SQL UDF 中的错误处理的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery UDF 内存在多行上超出错误,但在单行上工作正常