这几天来,努力学习了CLR的存储过程,创建与部署。从普通的存储过程,带参数,以及Output返回值等。
Insus.NET今天学习一个例子,怎样实现CLR Table-Valued函数。在数据库中,我们可以看到很多种函数类型,Table-falued function,Scalar-valued function 等等。
这篇练习的CLR中编写的函数就是table-valued function。
在VS开发SQL的 CLR程序,有简单有复杂,看开发时的衡量了。有些在SQL中无法实现的,可以写成CLR,然后再部署至SQL中。此篇并没有看出两者之间的优势,仅是一个例子作为参考。
比如我们想创建一个多表查询LEFT JOIN。把SQL语句写成一个table-valued函数。这个多表查询,所返回的字段,定义成一个类别:
上面代码示例,可复制代码:
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlTypes; using System.Text; namespace Insus.NET { class Fruit { public byte Fruit_nbr { get; set; } public byte FruitCategory_nbr { get; set; } public string CategoryName { get; set; } public byte FruitKind_nbr { get; set; } public string KindName { get; set; } public string FruitName { get; set; } } }