当我的查询中有多个错误,并且我在 catch 块中使用try catch
and函数时,我只会收到最后一条错误消息。error_message()
例如,如果我的错误是:
Msg 2714, Level 16, State 5, Line 14
There is already an object named 'IX_EntityTypeConfigs' in the database.
Msg 1750, Level 16, State 1, Line 14
Could not create constraint or index. See previous errors.
Run Code Online (Sandbox Code Playgroud)
在 catch 块中我刚刚得到:
Could not create constraint or index. See previous errors.
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到完整的消息?
我搜索了一下,发现这是 SQL Server 的限制,但文章属于 2014 年及之前的版本。
我想知道从那以后情况是否发生了变化。
我相信它仍然是正确的。推荐的方法是通过命令将错误重新抛出给应用程序THROW
并让应用程序处理它。
最好的资源仍然是Erland Sommarskog 的这篇文章 - SQL Server 中的错误和事务处理
您还可以使用扩展事件(XE) (在 SQL Server 端)捕获错误error_reported
。这将显示所有被触发的错误。
我在这里写了一篇博客:调查扩展事件的错误。
归档时间: |
|
查看次数: |
473 次 |
最近记录: |