摘要:描述了如何使用Microsoft Visual InterDev的SQL调试器来清除Microsoft SQL Server储存过程中的错误。
使用Visual InterDev清除储存过程和触发器中的错误
如果您正在使用Microsoft Visual Studio企业版,Visual InterDev包含有一个SQL调试器。您可以使用它象处理其他脚本或程序一样,清除SQL Server储存过程和触发器中的错误。但是,关于如何设定SQL调试以及调试器如何执行则有些不同。
对SQL调试进行设置
进行SQL设置的相关软件需求:
您必须要有Visual Studio企业版。
您必须要执行SQL Server 6.5包含Server Pack 2或更高版本。我们建议使用7.0版。
SQL Server必须要在Microsoft Windows NT 4.0或更高的版本上执行。
您的工作站必须要执行Windows 95、Windows 98、Windows NT 4.0或更高版本。
要使用SQL调试,您必须对服务器和工作站进行适当的设置。您应该:
确定已经在SQL Server中安装了SQL调试组件。
建立一个在执行SQL Server计算机上有管理权限的Windows NT用户。
在服务器上设置分布式组件对象模型(DCOM),以供SQL调试使用。
确定客户端的DCOM设定支持SQL调试(只适用于Windows 95、98工作站)。
安装SQL服务器调试组件
SQL调试需要您安装在您的SQL Server的组件。这些组件是Visual Studio Enterprise版本的一部份。
安装SQL调试组件
在安装SQL Server的计算机上,启动Visual Studio企业版的设置程序。
安装向导根据是否已在计算机上安装服务器组件显示不同的选项。
如果服务器已经安装,在新增/删除选项中,选择服务器应用程序及工具。
如果没有安装其它的组件,选择下一步直到到达提供企业设置选项的页面。选择服务器应用程序和工具。
如果没有安装其它组件,选择下一步直到到达提供企业设置选项的页面。选择服务器应用程序和工具。
在下一个页面中,选择启动BackOffice安装向导,然后选择安装。
当显示BackOffice商业方案向导时,选择自定义安装,然后选择下一步。
继续按下一步直到看到提供一个安装组件清单的页面。除了以下组件之外,清除其余的组件:
SQL服务器调试。
MS数据访问组件。
Visual InterDev服务器。
按下安装。
设置一个调试用户
要使用SQL调试,您必须提供一个在执行SQL Server的计算机上有管理权限的Windows NT用户的帐号和密码。
设置一个用户以供SQL调试使用
在服务器的Windows控制台中,选择设置一个调试用户,然后选择服务。
选择MSSQL,然后选择启动。
选定登录帐号为设定值。如果这个选项设置为系统帐号,将之改为这个帐号,以域帐号的形式输入拥有管理权限的用户的正确域和用户帐号。
如果已经改变了这个设定值,重新启动SQL服务器。
设置DCOM以供SQL调试使用
如果可以的话,请在机器中保留一份本机副本,那么就可以不需要使用DCOM来执行跨机器调试。
SQL调试使用分布式组件对象模型(DCOM),以便在您的客户端计算机和数据库服务器之间通信。因此必须设定DCOM以便让远程用户在调试器上附加一个处理程序。
默认情况下,在服务器上安装SQL Server时就会设置正确的DCOM设定值。但是,出于对执行SQL Server计算机的安全性的考虑,您可能要限制对调试的访问。
要在服务器上设定DCOM以供SQL调试使用
从服务器的Windows开始菜单,选择运行,然后在打开方框的提示符中键入Dcomcnfg.exe。
在分布式组件对象模型(Distributed COM)设置内容窗口中,选择预设安全性页面。在预设存取权限下选择编辑预设。
如果组Everyone尚未拥有权限,选择添加,然后以域帐号的形式添加一个拥有管理权限的用户的域和用户帐号。
在添加了这个帐号后,检查SYSTEM。如果它还未出现在清单上,使用添加名称和组对话框中的选取清单添加。
如果已经对这个过程中描述的任何选项做了修改,重新启动SQL Server。
注意: 如果希望将帐号添加到远程服务器,而这个帐号不能执行调试,则可能该帐号的用户正在服务器计算机上执行Visual InterDev。
执行SQL调试
与清除其它种类程序的错误不同,不能清除储存过程或对正在执行的触发器程序。您可以在编辑器中打开这个过程,从那里清除错误。
在数据检查窗口中,在储存过程上按右键,然后选择调试。
编辑器会在其窗口内打开储存过程,然后在调试菜单选择调试命令。
在以调试模式打开编辑器窗口后,您可以像平常一样使用调试器指针。例如,您可以在本机窗口设定断点和逐步执行过程。您可以查看变量的数值。您还可以将表达式拖到Watch窗口以便在逐步执行指令或执行程序使用。SQL PRINT的结果显示在输出窗口中。
但是,SQL调试器与脚本使用的调试器有以下的不同:
Auto和Immediate窗口在对储存过程调试时是没有作用的。虽然您可以显示它们,Auto窗口将变成空的,并且Immediate窗口将不会允许您输入表达式。
您可以改变执行顺序,以便使用设置下一个语句指定。
如果您正在使用简单的SELECT语句 ─ 那些只会返回单一数值 ─ 返回的数值是一个可以在本机窗口查看的变量。然而,如果SELECT语句传回一个结果集,在调试器中就不会显示出来。此外,您可以在输出窗口查看结果集。