Sql server 有没有办法找出TSQL存储过程中哪个语句崩溃了?

Sql server 有没有办法找出TSQL存储过程中哪个语句崩溃了?,sql-server,tsql,exception-handling,debugging,Sql Server,Tsql,Exception Handling,Debugging,本文对SQL Server开发提出了这样一种说法:“在每个SQL感兴趣的语句之后都必须检查错误”。关于TSQL的sql调试器的相当模糊的在线描述既不反驳也不支持这种说法 那么,“易于调试”的存储过程中有50%的代码专门用于检测错误,这是真的吗?或者有没有更好的方法可以做到这一点,这可能更接近于我们在现代编程环境中熟悉的基于堆栈跟踪的调试中发现崩溃的那种容易程度 这是一个需要创建聪明的新工具来填补现有编程环境不完善所留下的空白的领域,还是一个需要我熟悉程序并学习一些众所周知的最先进的方法来完成这些

本文对SQL Server开发提出了这样一种说法:“在每个SQL感兴趣的语句之后都必须检查错误”。关于TSQL的sql调试器的相当模糊的在线描述既不反驳也不支持这种说法

那么,“易于调试”的存储过程中有50%的代码专门用于检测错误,这是真的吗?或者有没有更好的方法可以做到这一点,这可能更接近于我们在现代编程环境中熟悉的基于堆栈跟踪的调试中发现崩溃的那种容易程度

这是一个需要创建聪明的新工具来填补现有编程环境不完善所留下的空白的领域,还是一个需要我熟悉程序并学习一些众所周知的最先进的方法来完成这些工作的领域

埃塔:在试捕中得到了,谢谢。事实上,为了扩展这一点,这里讨论了如何模拟堆栈跟踪,因为SQL Server显然还不支持堆栈跟踪。好吧,至少这是你在阅读本文后编写的代码库中可以模拟的方式-没有这些东西的遗留代码库将更难处理。

你可以使用:

ERROR_LINE()
获取有关发生问题的线路的信息。要使用它,您必须使用“try…catch”进行错误处理。此信息在“捕获”块中可用

文件:


示例:

我要做的是使用SQL server探查器,观察执行了哪些SQL查询,然后手动运行每个查询以查看问题所在。我已经看过很多关于SQL调试与VS集成的教程,但是没有一个能够正常工作。这篇文章是为SQL Server 2000编写的,它没有
try…catch
错误处理。