在SSMS 2008中,微软纠正了缺失的调试功能

SSMS 2008的一个伟大的新特性是新的调试工具。查询分析器在SQL Server 2000中有一个存储过程调试工具,但当SQL Server 2005合并企业管理器和查询分析器时,它没有被转移。这是一个从裂缝中消失的特征。我们必须切换到Visual Studio并在那里调试存储过程。但是微软已经在SSMS 2008中纠正了这个缺失的特性,所以我们不必为了调试Transact-SQL代码而切换到Visual Studio。

测试新调试特性的一种简单方法是测试像sp_helpdb这样的系统存储过程。在新查询窗口中,输入语句:

EXEC sp_helpdb

然后通过单击调试/启动调试或绿色箭头按钮输入调试工具。Debug会话开始并在语句执行之前立即停止,显示黄色箭头指示符。此时,您可以通过单击Debug/ step Into或F11来逐步执行存储过程的代码。然后再次显示黄色箭头,这次是针对存储过程中的第一条语句。调试工具正在等待进一步的指令。本地变量可以在Locals选项卡下查看,通过右键单击变量并选择“Add Watch”,可以设置监视列表。为了逐行执行代码,可以反复使用F11键。Watch列表将显示所选变量及其当前值。如果您希望测试没有测试数据的特定场景,您可以通过右键单击并选择“编辑值”来更改这些值。

当然,您可以设置断点,这样您就不必使用Debug/Toggle Breakpoint或F9在每一行代码处停止。在这种情况下,单击Debug/Continue或Alt+F5将推进到下一个断点。如果没有更多的断点,则代码将完成,调试会话将停止,并显示代码的结果。

用这种方法调试代码非常有教育意义,尤其是当代码不是您的时候。例如,在这个特定的存储过程sp_helpdb中,您会遇到一条动态sql,前面有一个注释。它说“8 KB的页面是128 / MB。如果我们改变了页面大小,这将以某种方式被DB或文件或文件组改变;现在是不可预见的,所以硬编码吧。”代码使用数据页的数量计算数据库大小(db_size)。页面大小目前固定在8KB,但看看微软正在考虑什么是有趣的。Oracle显然支持可变页面大小,但SQL Server一直是固定的。

由于微软让我们看到了系统存储过程的代码,现在我们可以交互地逐步处理这些代码,我建议“去学习”微软开发人员的代码。您可以了解很多有关Transact-SQL的知识,而且大多数代码结构良好,效率很高。

不要忘记阅读评论!

干杯

布莱恩

最近的帖子:

继承SQL Server中的权限

摆脱那些NOLOCK提示…

预算削减旅行吗?认为虚拟…

在SSMS中开发自定义报表…

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对自己最关心的话题发表评论。
相关:

版权所有©2009 IDG Com足球竞彩网下载munications, Inc.

SD-WAN买家指南:向供应商(和您自己)提出的关键问题