WEB开发网
开发学院数据库MSSQL Server 如何使用SQL CLR表值函数进行扩展 阅读

如何使用SQL CLR表值函数进行扩展

 2007-12-27 15:30:25 来源:WEB开发网   
核心提示:该表值函数是作为 TabularEventLog 类的两个静态方法实现的,第一个方法 (InitMethod) 赋予 SqlFunction 属性,如何使用SQL CLR表值函数进行扩展(3),用于将它指定为该表值函数的入口点,此方法必须返回 IEnumerable 或 IEnumerator 对象,为了部署某数据处理

该表值函数是作为 TabularEventLog 类的两个静态方法实现的。第一个方法 (InitMethod) 赋予 SqlFunction 属性,用于将它指定为该表值函数的入口点。此方法必须返回 IEnumerable 或 IEnumerator 对象。该对象包含将用于填充返回表的数据。执行该函数时,SQL Server 将循环访问 IEnumerator 对象中的每个对象,并使用它来填充数据行。为此,它要将该对象传递到该类中的第二个方法 FillRow。此方法会将该对象转换成返回表中的某一行。此方法在 SqlFunction 属性的 FillRowMethodName 参数中指定。

其他元数据在 SqlFunction 属性的参数中定义。在前一示例中,列名和类型以及返回表的名称都是在此属性中定义的。

将此函数部署到某 SQL Server 实例后,就可以运行以下查询来查看应用程序日志中的最后 10 项。

SELECT TOP 10 T.logTime, T.Message, T.InstanceId
FROM dbo.ReadEventLog(N'Application') as T

结果如图 1 所示:

图 1. 查询结果

将表值函数用作数据处理扩展的替代方法

Reporting Services 数据处理扩展功能可用于通过实现一组 ADO.NET 接口来对数据源建模。这在概念上类似于如何才能将表值函数用于 Reporting Services。表值函数明显优于数据处理扩展。

优点:

首先,表值函数比数据处理扩展要容易实现的多。只需创建两种方法即可实现表值函数。而数据处理扩展则必须实现许多接口。同样,部署模型也更简单明了。Microsoft Visual Studio 2005 可自动将 .NET Framework 表值函数部署到 SQL Server,之后,该函数即立即变得可从 Reporting Services 中使用。为了部署某数据处理扩展,必须将程序集复制到客户端和报表服务器,并在这两处编辑 XML 配置文件。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:如何 使用 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接