公共语言运行时 (CLR) 集成编程概念

适用于:SQL Server Azure SQL 托管实例

从 SQL Server 2005(9.x)开始,SQL Server 功能集成适用于 Microsoft Windows 的 .NET Framework 的公共语言运行时(CLR)组件。

可以使用任何 .NET Framework 语言(包括 Visual Basic 和 C#)编写存储过程、触发器、用户定义的类型、用户定义的函数、用户定义的聚合和流式处理表值函数。

注解

  • SQL Server CLR 集成不支持 .NET Core 或 .NET 5 及更高版本。

  • 可以在 Linux 上加载 SQL Server 2017(14.x)及更高版本的 CLR 数据库对象,但必须使用 .NET Framework 生成它们。 此外,Linux 不支持具有或UNSAFE权限集的 EXTERNAL_ACCESS CLR 程序集。

  • 默认情况下,.NET Framework 运行时 随 SQL Server 一起安装,但 .NET Framework SDK 不是。 若要安装最新版本的 .NET Framework SDK,请参阅 下载 .NET Framework 开发人员包

  • 命名空间 Microsoft.SqlServer.Server 包括 SQL Server 中 CLR 编程的核心功能。 有关命名空间的文档Microsoft.SqlServer.Server,请参阅 Microsoft.SqlServer.Server 命名空间(.NET Framework 4.8)。

  • Azure SQL 数据库不支持 CLR 功能(如 CLR 用户函数)。

本节内容

下表列出了本节中的文章。

文章 说明
公共语言运行时 (CLR) 集成概述 简要概述了 CLR,并介绍了如何在 SQL Server 中使用这项技术以及为何使用此技术。 描述使用 CLR 创建数据库对象的好处。
程序集(数据库引擎) 介绍如何在 SQL Server 中使用程序集来部署函数、存储过程、触发器、用户定义的聚合和用户定义类型,这些类型采用由 Microsoft .NET Framework 公共语言运行时(CLR)托管的托管代码语言之一编写,而不是用 Transact-SQL 编写。
使用公共语言运行时 (CLR) 集成生成数据库对象 描述可以使用 CLR 生成的对象种类,并说明生成 CLR 数据库对象时所要满足的要求。
从 CLR 数据库对象进行数据访问 描述 CLR 例程如何访问存储在 SQL Server 实例中的数据。
CLR 集成安全性 描述 CLR 集成安全模型。
调试 CLR 数据库对象 描述调试 CLR 数据库对象的限制和要求。
部署 CLR 数据库对象 描述如何将程序集部署到生产服务器。
管理 CLR 集成程序集 描述如何创建和删除 CLR 集成程序集。
托管数据库对象监视和故障排除 提供有关可用于监视和排查 SQL Server 中运行的托管数据库对象和程序集的工具的信息。
公共语言运行时 (CLR) 集成的使用方案和示例 描述使用 CLR 对象的应用场景和代码示例。

另请参阅