您的位置:首页 > 数据库

如何:使用 SQL Server 数据库项目或服务器项目进行调试

2013-07-03 20:10 561 查看
http://technet.microsoft.com/zh-cn/magazine/ms165040(VS.100).aspx

下面的过程描述如何使用 Visual StudioSQL Server 数据库项目或服务器项目类型来调试 Transact-SQL。有关在
C++、Visual Basic 或 C# 项目中调试 Transact-SQL 的信息,请参见调试多层数据库应用程序

在 SQL Server 数据库项目或服务器项目的上下文中,每当启动调试时,调试器将始终在活动的 Transact-SQL
查询窗口中开始调试 Transact-SQL 代码。如果不希望调试整个脚本,请于开始调试之前仅在查询窗口中突出显示
Transact-SQL 代码的子集。

若要调试存储过程和触发器这样的数据库对象,则需要在活动的 Transact-SQL 查询窗口中从 Transact-SQL
代码进入并单步执行这些对象。例如,如果希望调试存储过程:在调用该存储过程的EXECUTE语句上设置断点,在相同的
Transact-SQL 查询窗口上启动调试,然后通过单击“调试”工具栏上的“单步执行”来单步执行该存储过程。


注意
当使用 SQL Server 数据库或服务器项目时,Visual Studio 调试器不识别已通过服务器资源管理器设置的数据库对象上的断点。

在活动的 Transact-SQL 查询窗口中调试 Transact-SQL 脚本

确认已针对 Transact-SQL 调试设置了计算机。有关更多信息,请参见如何:启用
Transact-SQL 调试。

启动 Visual Studio,并创建新的 SQL Server 数据库项目或服务器项目。

打开要用于开始调试的 Transact-SQL 脚本。还可以打开与当前项目关联或不关联的新 .sql 文件。

将新的 Transact-SQL 脚本添加到项目中:在解决方案资源管理器中右击项目名称,单击“添加”,再单击“新建项”。在“添加新项”对话框中,选择“脚本”(位于“数据库项目”节点下的“用户脚本”模板中)。然后单击“添加”。

若要打开与项目没有关联的新 Transact-SQL 查询窗口,请参见如何:启动
Transact-SQL 编辑器和如何:连接到
Transact-SQL 编辑器中的数据库。注意:如果没有首先打开 SQL Server
数据库项目或服务器项目,则不能调试 Transact-SQL。

打开 Transact-SQL 查询窗口之后,开始编写 Transact-SQL 代码(如果尚未编写)。在准备开始调试后,继续下一个步骤。

在 Transact-SQL 代码中放置断点,方法是在 Transact-SQL 查询窗口的左空白处单击要中断执行的代码行。

通过按 F5 或打开“调试”菜单并单击“启动调试”,启动调试活动的
Transact-SQL 查询窗口。

使用“调试”工具栏上的“单步执行”、“逐过程”或“跳出”按钮,在
Transact-SQL 脚本中导航调试器。还可以按 F5 继续执行,直到出现下一个断点或脚本结束。

使用“局部变量”和“监视”窗口检查代码的状态。有关更多信息,请参见使用局部变量窗口和监视窗口调试
Transact-SQL 对象。

当完成并准备停止调试时,请按 Ctrl+Alt+Break,或者单击“调试”工具栏上的“停止调试”。

调试已部署到服务器上的 Transact-SQL 数据库对象

确认已针对 Transact-SQL 调试设置了计算机。有关更多信息,请参见如何:启用
Transact-SQL 调试。

启动 Visual Studio,并创建新的 SQL Server 数据库项目或服务器项目。

打开要用于测试 Transact-SQL 数据库对象的 Transact-SQL 脚本。还可以打开与当前项目关联或不关联的新 .sql 文件。

将新的 Transact-SQL 脚本添加到项目中:在解决方案资源管理器中右击项目名称,单击“添加”,再单击“新建项”。在“添加新项”对话框中,选择“脚本”(位于“数据库项目”节点下的“用户脚本”模板中)。然后单击“添加”。

若要打开与项目没有关联的新 Transact-SQL 查询窗口,请参见如何:启动
Transact-SQL 编辑器和如何:连接到
Transact-SQL 编辑器中的数据库。注意:如果没有首先打开 SQL Server
数据库项目或服务器项目,则不能调试 Transact-SQL。

打开 Transact-SQL 查询窗口之后,开始编写 Transact-SQL 测试代码(如果尚未编写)。调试
Transact-SQL 数据库对象的唯一方法是在活动的 Transact-SQL 查询窗口中单步执行它们。在会导致执行
Transact-SQL 的测试脚本中编写 Transact-SQL 代码。

若要调试存储过程,请向使用相应存储过程的测试脚本添加

EXECUTE

语句。

若要调试触发器、用户定义的函数和其他可编程的 Transact-SQL 数据库对象,请在会导致代码执行的测试脚本中编写
Transact-SQL 代码。

在 Transact-SQL 测试脚本中放置断点,方法是在 Transact-SQL 查询窗口的左空白处单击要中断执行的代码行。若要调试已部署到
SQL Server 实例的 Transact-SQL 数据库对象,请将断点放置在会导致执行这些对象的 Transact-SQL 代码之前。

在启动调试器之前,请单击 Transact-SQL 测试脚本,以确保它在 Visual Studio 中是活动的窗口。

通过按 F5 或打开“调试”菜单并单击“启动调试”,开始调试
Transact-SQL 测试脚本。

当调试器在断点处中断执行后,按 F8 或打开“调试”菜单并单击“单步执行”,以在
Transact-SQL 数据库对象的 Transact-SQL 代码中单步执行调试器。调试器单步执行数据库对象的
Transact-SQL 代码后,Visual Studio 将立即打开 Transact-SQL 查询窗口来显示相应的 Transact-SQL 代码。

调试器单步执行 Transact-SQL 数据库对象后,即可设置其他断点,并使用“调试”工具栏上的“单步执行”、“逐过程”或“跳出”按钮在
Transact-SQL 代码中导航调试器。还可以按 F5 继续执行,直到出现下一个断点或代码结束。

使用“局部变量”和“监视”窗口检查代码的状态。有关更多信息,请参见使用局部变量窗口和监视窗口调试
Transact-SQL 对象。

当完成并准备停止调试时,请按 Ctrl+Alt+Break,或者单击“调试”工具栏上的“停止调试”

如何:启用 Transact-SQL 调试

使用 Visual Studio 的 Transact-SQL 调试需要一个 SQL Server 数据库服务器、从 SQL
Server 2005 开始并设置适当的 权限。如果对应的 SQL Server 实例正在其他计算机上运行,则还需要在两台计算机上都配置
Windows 防火墙。

注意 不支持使用
SQL Server 2000 或更早版本来调试 Transact-SQL。

还可以使用 Visual Studio 调试 SQL CLR 代码(即使用托管代码的数据库对象)。若要对远程数据库服务器调试
SQL CLR,则必须在运行 SQL Server 实例的计算机上安装远程调试监视器。有关更多信息,请参见如何:设置远程调试和调试使用托管代码的数据库对象(SQL
CLR 调试)。

有关使用 SQL Server Management Studio 调试 Transact-SQL 的更多信息,请参见使用
Transact-SQL 调试器(可能为英文网页)。

准备对 SQL Server 实例的 SQL Server 权限

将应用程序帐户添加到 SQL Serversysadmin 固定服务器角色。应用程序帐户是用来运行
Visual Studio 的 Windows 帐户。为此,请使用同样是 sysadmin 成员的登录名执行下面的
Transact-SQL 语句,其中Domain\Name表示
Windows 帐户登录名:sp_addsrvrolemember
'Domain\Name', 'sysadmin'

将连接帐户添加到 SQL Server sysadmin 固定服务器角色。连接帐户是
Transact-SQL 代码用于连接到 SQL Server 实例的 Windows 登录名或 SQL Server 登录名。为此,请使用同样是 sysadmin 成员的登录名执行下面的
Transact-SQL 语句,其中Domain\Name表示相应的帐户:sp_addsrvrolemember
'Domain\Name', 'sysadmin'


注意
我们建议在测试服务器上调试 Transact-SQL 代码,而不要在生产服务器上调试,其原因如下:调试是对权限要求很高的操作。因此,只允许 sysadmin 固定服务器角色的成员在
SQL Server 中进行调试。当您调查多个 Transact-SQL 语句的运行时,调试会话通常会运行很长时间。会话所获取的锁(如更新锁)可能会持有很长时间,直到结束会话或者提交或回滚事务。

准备 Windows 防火墙进行远程调试(当 SQL Server 在另一台计算机上运行时)

在运行 Visual Studio 的计算机上,必须将下列项添加到 Windows 防火墙例外列表中:

Visual Studio 程序Devenv.exe。

TCP 端口 135

在运行 SQL Server 实例的计算机上,必须将下列项添加到 Windows 防火墙例外列表中:

SQL Server 程序sqlservr.exe。默认情况下,sqlservr.exe安装在
C:\Program Files\Microsoft SQL Server\MSSQL10.InstanceName\MSSQL\Binn
中,其中InstanceName 对于默认实例为
MSSQLSERVER,而对于任何命名实例为实例名称。

TCP 端口 135

如果您的域策略要求通过 IPSec 进行网络通信,还必须打开 UDP 4500 和 UDP 500 端口。

 

 

 
 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: