TSQL调试问题
问题描述:
我正在寻找一种有效的方法来调试复杂和冗长的T-SQL。我已经找到了这个http://msdn.microsoft.com/en-us/library/ms241871%28v=vs.80%29.aspx的MSDN建议,但是当我设置断点时,它会回显“断点当前不会被命中,没有符号被加载到这个文档中。”配置设置为调试而不是发布。我正在运行Visual Studio 2010专业版。TSQL调试问题
答
您可以使用Management Studio来调试您的T-SQL脚本,除非它涉及自定义CLR组件。不要使用Visual Studio来附加到sqlservr.exe。
答
这是一种非最佳建议,但可能有帮助。
在PROC顶部声明一个@Debug BIT参数,将其设置为1,然后添加一些
IF @Debug = 1
SELECT 'Debug statement blahblah' //or report something useful for debugging
这确实有些改变PROC但是这种技术已经在过去有用,特别是冗长而复杂的特效。
一个选择是使用sql profiler。 – JonH 2012-08-09 16:03:36
一个方便的技术是在将代码或其中的一小部分包装在'BEGIN TRANSACTION' /'ROLLBACK TRANSACTION'中之后,在SSMS中运行代码或其部分。可能仍有副作用,例如身份值可能被跳过。这不应该是一个问题。 – HABO 2012-08-09 17:52:21