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

适用于:SQL ServerAzure SQL 托管实例

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

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

备注

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

  • 可以在 Linux 上为 SQL Server 2017 (14.x) 及更高版本加载 CLR 数据库对象,但必须使用 .NET Framework 生成这些对象。 此外,Linux 上不支持具有 EXTERNAL_ACCESSUNSAFE 权限集的 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 Namespace (.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 对象的应用场景和代码示例。

另请参阅