从 CLR 数据库对象进行数据访问

适用范围:SQL Server

公共语言运行时(CLR)例程可以轻松访问存储在运行 SQL Server 的 Microsoft 实例中的数据,以及存储在远程实例中的数据。 该例程可以访问的特定数据由代码正在其中运行的用户上下文确定。 使用适用于 SQL Server 的 .NET Framework 数据提供程序(也称为 SqlClient)从 CLR 数据库对象中访问数据。 这是开发人员从托管客户端和中间层应用程序访问 SQL Server 数据的同一提供程序。 因此,可以利用客户端和中间层应用程序中 ADO.NET 和 SqlClient 的知识。

注意

默认情况下,不允许用户定义类型方法和用户定义函数执行数据访问。 必须将 SqlMethodAttribute 或 SqlFunctionAttributeDataAccess 属性设置为 DataAccessKind.Read,才能从用户定义的类型(UDT)方法或用户定义的函数启用只读数据访问。 不允许从 UDT 或用户定义函数执行数据修改操作,否则,将在执行时引发异常。

本节只讨论当从 CLR 数据库对象中访问数据时特定的功能差异和行为差异。 有关 ADO.NET 的特性和功能的详细信息,请参阅 .NET Framework SDK 随附的 ADO.NET 文档。

下表列出了本节的主题。

上下文连接
介绍与 SQL Server 之间的上下文连接。

模拟和连接凭据
介绍模拟连接和连接凭据。

SQL Server 进程内专用的 ADO.NET 扩展
讨论进程内特定的 SqlPipeSqlContext、SqlTriggerContextSqlDataRecord 对象。

CLR 集成和事务
介绍 System.Transactions 命名空间中提供的新事务框架如何与 ADO.NET 和 SQL Server CLR 集成集成。

从 CLR 数据库对象进行 XML 序列化
介绍如何在 SQL Server 中启用 CLR 数据库对象的 XML 序列化方案。