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

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

学习版

主题不适用 主题不适用 主题不适用 主题不适用

标准版

主题不适用 主题不适用 主题不适用 主题不适用

专业及团队版

主题适用 主题适用 主题适用 主题适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

本节包含所有 SQL Server 公共语言运行时 (SQL CLR) 数据库对象类型的示例。

有三种不同的情形需要考虑:

若要调试触发器,必须在存储过程中启动调试会话。 特别是,您不能调试独立的 Transact-SQL 脚本,也不能通过调用脚本使触发器被激发来调试触发器。

数据库层软件要求

SQL CLR 调试要求在服务器上安装以下附加软件:

  • 调试时,远程调试监视器 (msvsmon) 必须处于运行状态。 如果运行的是 SQL Server 2005,则安装 msvsmon 的安装程序已经存在于服务器的 <SQL Server 安装目录>\90\Shared\rdbgsetup.exe 中。 运行此程序以安装它,此后每当单步执行断点或命中断点时,SQL Server 都会启动它。

SQL CLR 调试问题疑难解答

如果在尝试调试 SQL CLR 对象时,显示消息“被用户取消”,您必须手动配置运行 Visual Studio 的计算机以及运行 SQL Server 的计算机。 有关更多信息,请参见如何:配置计算机以启用 Transact-SQL 和 SQL CLR 调试

常规任务

常规任务

支持内容

了解更多有关 SQL CLR 数据库项目: 阅读有关发展的优势。.NET 框架数据库对象的SQL Server使用托管的代码。 与 Transact-SQL 相比,托管代码具有若干优点。

在调试之前,请执行必要的安装: 有您必须启用 SQL CLR 调试的步骤。 此外,您可以查找有关某些常见问题以及如何解决它们的信息。

调试 SQL CLR 对象的不同类型: 按照相应的程序,若要了解如何调试存储的过程、 触发器、 用户定义的标量函数、 用户定义的表值函数、 用户定义的聚合函数和通过使用托管的代码创建的用户定义的类型。

设置 SQL 调试后升级 SQL Server 版本

如果在完成设置后安装新版本,则必须重新运行远程组件安装程序,以确保为远程调试安装了正确的组件。 有关更多信息,请参见如何:设置远程调试远程调试组件

SQL 找不到 SSDEBUGPS

当您尝试启动 SQL 调试时,您可能会收到以下错误消息: SQL 找不到 SSDEBUGPS。

若要解决此问题,必须重新运行远程调试组件。 有关更多信息,请参见如何:设置远程调试

无法附加到崩溃进程。指定的程序不是 Windows 或 MS-DOS 程序。

当您尝试调试 SQL CLR 对象时,可能会出现以下错误消息: 无法附加到崩溃进程。 指定的程序不是 Windows 或 MS-DOS 程序。

将 SQL Server 配置为以 LocalSystem 或登录用户运行并手动启动“远程调试监视器”(msvsmon) 时,会发生此错误。

若要纠正此错误,您必须允许 SQL Server 自动启动“远程调试监视器”,而不是手动启动它。

相关主题

标题

说明

调试 TRANSACT-SQL(Microsoft Web 站点)

描述如何调试诸如存储过程、函数和触发器等数据库对象。