使用公共语言运行时 (CLR) 集成生成数据库对象

适用于:SQL Server

可以使用 SQL Server 与 .NET Framework 公共语言运行时(CLR)集成来生成数据库对象。 在 Microsoft SQL Server 内部运行的托管代码称为“CLR 例程”。这些例程包括:

  • 标量值用户定义函数(标量 UDF)

  • 表值用户定义函数 (TVF)

  • 用户定义的过程 (UDP)

  • 用户定义的触发器

CLR 例程在托管代码中具有相同的结构。 它们映射到类的公共静态方法(Microsoft Visual Basic .NET 中共享)。 除了例程之外,还可以使用 .NET Framework 定义用户定义类型 (UDT) 和用户定义的聚合函数。 将 UDT 和用户定义聚合映射为整个 .NET Framework 类。

每种 .NET Framework 例程都有 Transact-SQL 声明,可在 SQL Server 中使用 Transact-SQL 等效项的任何位置。 例如,标量 UDF 可以用于任意标量表达式中。 TVF 可以用于任意 FROM 子句中。 可以在 EXEC 语句中调用过程或从客户端应用程序调用。

注意

如果查询优化器确定这样做有益处,则在公共语言运行时上执行 CLR 对象(用户定义函数、用户定义类型或触发器)可能在多个线程上发生(并行计划)。 但是,如果用户定义函数访问数据,则会在串行计划上执行。 在 SQL Server 2008(10.0.x)之前的服务器版本上执行时,如果用户定义函数包含 LOB 参数或返回值,则执行也必须在串行计划中。

下表列出了本节涵盖的主题。

CLR 集成入门
简要概述了使用 CLR 与 SQL Server 集成编译对象所需的库和命名空间。 提供一个“Hello World”CLR 存储过程示例。

支持的 .NET Framework 库
提供有关 CLR 集成支持的 .NET Framework 库的信息。

CLR 集成编程模型限制
提供有关 CLR 集成编程模型限制的信息。

.NET Framework 中的 SQL Server 数据类型
SQL Server 数据类型及其 .NET Framework 等效项的概述。

CLR 集成自定义属性的概览
提供有关 CLR 集成自定义属性的信息。

CLR 用户定义函数
说明如何实现和使用各种类型的 CLR 函数:表值、标量和用户定义的聚合函数。

CLR 用户定义类型
说明如何实现和使用 CLR 用户定义类型。

CLR 存储过程
说明如何实现和使用 CLR 存储过程。

CLR 触发器
说明如何实现和使用 CLR 触发器。

另请参阅

公共语言运行时 (CLR) 集成概述