Jim*_*ood 2 sql-server sql-server-2008
当我查询作为表值函数实现的SQL Server 2008系统动态管理视图并返回空结果集时,如何判断空结果集的原因是函数中发生错误,并且那么,那个错误是什么?
有一种比执行除以零更有用的方法来强制 TSQL 中的函数内部出现错误。我们在我们公司所做的是转换一个字符串(描述问题所在)并将其转换为字符串。
if @PersonID is null
insert into @Result values(@Right, cast('FT_AclGetAccess must never be called with @PersonID null' as int))
Run Code Online (Sandbox Code Playgroud)
这将导致应用服务器上出现如下错误:
将 varchar 值 'FT_AclGetAccess must never be called with @PersonID null' 转换为数据类型 int 时转换失败。
在应用程序服务器上进行一些字符串操作,您会得到一个非常合理的日志文件错误消息!;-)
他们没有.您不能在T-SQL函数中使用THROW或RAISERROR.某些开发人员强制除以0以在UDF内触发错误.这种方法很好,但有时会混淆那些必须调查除以0错误的可怜的灵魂.
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |