什么是 SQL Server 语言扩展?

适用于:SQL Server 2019 (15.x) 及更高版本

语言扩展是 SQL Server 的一项功能,用于执行外部代码。 可以使用扩展性框架在外部代码中使用关系数据。 在 SQL Server 2019 (15.x) 及更高版本中,支持 Java、C#、Python 和 R 运行时。

注意

有关在 SQL Server 中执行 Python 或 R 的信息,请参阅使用 Python 和 R 进行的机器学习服务文档。 使用 SQL Server 2019 (15.x) 及更高版本,可以将自定义 Python 和 R 运行时与语言扩展结合使用。 有关更多信息,请参阅为 SQL Server 安装 Python 自定义运行时以及为 SQL Server 安装 R 自定义运行时

使用语言扩展可执行的操作

语言扩展使用扩展性框架来执行外部代码。 代码执行与核心引擎进程隔离,但与 SQL Server 查询执行完全集成。 你可以在数据的源中执行代码,而无需通过网络提取数据。

外部语言通过 CREATE EXTERNAL LANGUAGE 定义。 系统存储过程 sp_execute_external_script 用作执行代码的接口。

语言扩展可提供多种优势:

  • 数据安全性。 使外部语言执行更接近数据源可避免不安全的数据移动。

  • 速度。 数据库针对基于集的操作进行了优化。

  • 易于部署和集成。 SQL Server 是许多其他数据管理任务和应用程序的操作中心点。 通过使用数据库中的数据,可以确保语言扩展使用的数据保持最新且一致。

使用本机公共语言运行时集成,可以通过 .NET 语言实现 SQL Server 的某些功能。 有关 SQL CLR 和 SQL 语言扩展之间的差异的讨论,请参阅将 SQL Server 语言扩展与 SQL CLR 进行比较