数据库专家答疑目录

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 数据库子站 > 数据库专家答疑目录

T-SQL调试器重返SQL Server 2008

作者:唐小若出处:IT专家网2009-03-19 09:58

  SSMS中的调试性能是用户长期追求的一个功能,最终Microsoft SQL Server团队决定在SQL Server 2008中提供这个功能。有了这个功能,你可以逐行浏览你的代码,查看程序中变量的当前状态,而在一个输出窗口中你可以观察代码正在做什么,在错误窗口中,你可以向前一行浏览也可以向后查看,发现系统对象如访问堆和线程,除此之外,你甚至可以安置“断点”然后告诉调试器运行代码直到该点在停止。

  实例

  你可以通过点击查询工具栏中的Debug按钮或者点击Debug菜单中的Start Debugging或者按ALT+F5来启动调试器。

  在下面的图像中,我在一个调试模式下执行代码;你会注意到虽然本地窗口的细节只是看得见的,但是底下一些窗口显示了T-SQL调试器中当前范围内本地变量的信息。

  

  图一

  让我们看看另一个例子。本例子的脚本在下面表格中提供,一个程序调用另外一个程序,因此,在执行过程中如果你看看Call Stack窗口,你会得到当前的执行位置和执行如何从最初的编辑器窗口通过任何T-SQL路径(函数、存储过程或者触发器)传递到如下显示的当前执行位置。

  脚本 #1: 创建一个调用其他程序的程序

  

      CREATE PROCEDURE PROC1

  AS

  BEGIN

  PRINT 'A'

  PRINT 'B'

  EXECUTE PROC2

  END

  GO

  CREATE PROCEDURE PROC2

  AS

  BEGIN

  PRINT 'C'

  PRINT 'D'

  END

  GO

  EXECUTE PROC1

  GO

  

  图二

  注意事项

  SSMS必须在一个Windows/SQL Server账户下运行,该账户是系统管理员固定服务器角色中的一员,否则,你将得到类似于下图的错误信息:

  

  图三

  当SSMS正在从一个不同计算机上的数据库引擎实例中运行时,如果你在运行T-SQL调试器,你必须通过Windows防火墙控制面板应用程序在两个计算机上启用程序和端口例外。

  微软建议T-SQL代码应该在一个开发/测试服务器上调试,而不是在一个生产服务器中,首先这是因为它要求成员必须作为系统管理员固定服务器角色的一部分来调试,其次是因为当你调试和研究时,它可能会保存资源更长时间。

  限制

  如果你甚至从SQL Server 2008 SSMS连接到SQL Server 2005,那么你可能不能调试你的程序并得到下面的错误,这种情况会发生,那是因为T-SQL调试器包含服务器端和客户端的组件,因此,概括来说,它只能与SQL Server 2008工作到这种程度。

  

  图四

  T-SQL调试器不支持设置断点情形或者触及法律的Microsoft Visual Studio功能。

相关文章

关键词: 评论

责任编辑:包春林

专题推荐

原创文章

微博互动

白皮书

网警备案