sql-server - "Catching"SQL Server 2005 中用户定义函数中的错误

标签 sql-server error-handling user-defined-functions

我有一个将数字作为输入并将其转换为日期的函数。这个数字不是任何标准形式的日期数字,所以我必须手动将数字的各个部分分割为不同的日期部分,将日期部分转换为 varchar 字符串,然后将字符串连接并转换为新的日期时间对象。

我的问题是如何捕获转换失败并从我的函数返回空值或低范围值?我更希望我的函数“被动”失败,返回默认值,而不是向我的存储过程返回失败代码。 TRY/CATCH 语句显然在函数内不起作用(除非有某种我不知道的定义标志类型)并且尝试标准的“@@Error <> 0”方法也不起作用。

最佳答案

顺便说一句,这听起来像是一个标量 UDF。正如 Alex 的博客所指出的,这是一场性能灾难。 http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/05/23/reuse-your-code-with-cross-apply.aspx

关于sql-server - "Catching"SQL Server 2005 中用户定义函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353796/

相关文章:

c# - WAITFOR RECEIVE 结果偏移/延迟 1 个结果

arraylist - 如何创建数组列表类并在Flutter中获取数据

powershell - 我该如何纠正 “Command output already redirected”错误

scala - 如何在 Spark Scala 中将 org.apache.spark.sql.ColumnName 转换为字符串、十进制类型?

通过 ODBC/FreeTDS 连接到 SQL Server 2005 和 2016 时,PHP 脚本将文本字段截断为 4096 个字符

sql - SQL Server 中一行中所有列值的总和

sql - 使用 SQL 将 pdf 文件插入 SQL 表

php - Laravel 5应用程序::error

mysql - 在 LOWER() 中使用时,SUBSTRING_INDEX() 结果为 "omit"字符

vb.net - 构建 LINQ 表达式以查找与树节点的所有后代相关的项目