如何:使用 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 查询窗口上启动调试,然后通过单击“调试”工具栏上的“单步执行”来单步执行该存储过程。
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 调试。
启动 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 调试器(可能为英文网页)。
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'
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 端口。
下面的过程描述如何使用 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 端口。
相关文章推荐
- 如何在进行数据库连接到服务器时使用端口号
- [How To]如何使用Wildfish进行ISeries项目开发--数据库建立部分
- 使用cocos创建的项目,如何进行源码调试?
- 使用Egret开发的HTML5项目,使用本地电脑作为服务器进行移动端调试流程
- 使用JUnit对Web项目进行测试(二) -- 不启动服务器调试Web项目
- 如何使用git新建多个SSH密钥进行项目托管
- 如何使用firefox进行网页js调试
- 开源那些事儿(四)-如何使用CodePlex进行项目管理
- 如何使用FtpWebRequest对ftp服务器上面的目录进行改名(注意是目录不是文件!)
- 如何创建供客户端使用的服务器别名(SQL Server 配置管理器)
- 讲述如何使用GitHub进行项目托管
- 如何使用SQL Server 2005 专用管理员连接(DAC)登录到服务器
- SQL Server--数据库中如何使用表值参数
- 无法在Web服务器上启动调试,未将项目配置为进行调试~[解决方案]
- Sql Server 数据库之间如何进行跨网远程连接访问
- 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序
- 无法在Web服务器上启动调试,未将项目配置为进行调试.
- 如何使用专用管理连接进行问题诊断和处理 【摘自SQL Server在线帮助】
- 使用Eclipse(以及intellij IDEA)配合JDWP对服务器上部署的代码进行调试
- VS2010如何进行调试项目更清晰