如何:启用 Transact-SQL 调试

本主题适用于:

Visual Studio 旗舰版

Visual Studio 高级专业版

Visual Studio 专业版

Visual Studio 速成版

s0fk6z6e.DoesApplybmp(zh-cn,VS.100).gif s0fk6z6e.DoesApplybmp(zh-cn,VS.100).gif s0fk6z6e.DoesApplybmp(zh-cn,VS.100).gif s0fk6z6e.DoesNotApplybmp(zh-cn,VS.100).gif

使用 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 权限

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

  2. 将连接帐户添加到 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 在另一台计算机上运行时)

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

    1. Visual Studio 程序 Devenv.exe。

    2. TCP 端口 135

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

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

    2. TCP 端口 135

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

请参阅

参考

Transact-SQL 调试设置错误和疑难解答

概念

调试 Transact-SQL

其他资源

设置 Transact-SQL 调试

调试设置和准备

在 SQL 2000 桌面引擎上启用 SQL 调试

如何:设置远程调试

调试使用托管代码的数据库对象(SQL CLR 调试)