博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Clr静态数据Table-Valued函数
阅读量:5935 次
发布时间:2019-06-19

本文共 1255 字,大约阅读时间需要 4 分钟。

前两天Insus.NET实现一个功能《》 ,在数据库中为程序提供静态数据。

它是在Clr存储过程实现。现想使用另外一种方式来解决。如果提供这些静态数需要与其它数据结合Join等,这样象前面的存储过程,有些不太好操作。那我们可以把它实现在table-valued function。
创建一个model:

再创建一个Entity:

打开SqlFunction类,编写table-valued函数:

可复制代码:

[SqlFunction(DataAccess = DataAccessKind.None,                FillRowMethodName = "FillRow_1A",                TableDefinition = "Id TINYINT,Name NVARCHAR(30), [key] NVARCHAR(30)")   ]    public static IEnumerable Tvf_SiteInfor()    {        FruitEntity fe = new FruitEntity();        return fe.GetData();           }    private static void FillRow_1A(object source, out SqlByte id, out SqlChars name, out SqlChars key)    {        Si obj = (Si)source;        id = new SqlByte(obj.Id);        name = new SqlChars(obj.Name);        key = new SqlChars(obj.Key);    }
View Code

部署至SQL:
可复制代码:

IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Tvf_SiteInfor')    DROP FUNCTION Tvf_SiteInfor;GOIF EXISTS (SELECT * FROM sys.assemblies WHERE name = 'FruitClr')    DROP ASSEMBLY FruitClr;GOCREATE ASSEMBLY FruitClrFROM 'E:\FruitClr.dll' WITH PERMISSION_SET = SAFE;GOCREATE FUNCTION Tvf_SiteInfor() RETURNS TABLE(    Id TINYINT,    [Name] NVARCHAR(30),    [key] NVARCHAR(50)) AS EXTERNAL NAME [FruitClr].UserDefinedFunctions.Tvf_SiteInfor; GO
View Code

执行结果:

 

转载地址:http://hfjtx.baihongyu.com/

你可能感兴趣的文章
Windows下POSIX线程编程(pThread)环境搭建
查看>>
20150117_js_设置时间的显示格式
查看>>
Tomcat数据源总结
查看>>
《Windows核心编程》读书笔记 上
查看>>
C++ 虚函数表解析
查看>>
Linux下php+mysql+nginx编译搭建(一)
查看>>
java泛型介绍
查看>>
Javascript事件机制兼容性解决方案
查看>>
使用POI把Word Excel转为HTML
查看>>
sip 认证分析
查看>>
C#访问Java的WebService添加SOAPHeader验证的问题
查看>>
泛型练习4(接口)
查看>>
ubuntu 10.10配置NFS网络共享步骤
查看>>
Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
查看>>
[转贴] 数字证书及 CA 的扫盲介绍
查看>>
Python 安装mssql (Ubuntu)
查看>>
IIS发布站点错误收集
查看>>
【LeetCode】198. House Robber
查看>>
java.io.InvalidClassException: com.master.CurrentMessages; local class incompatible:
查看>>
Loadrunner中参数和变量的使用
查看>>