公共语言运行时 (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 对象的应用场景和代码示例。 |