欢迎来到天天文库
浏览记录
ID:22725960
大小:67.00 KB
页数:8页
时间:2018-10-31
《sqlclr(二)存储过程和自定义函数》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、SQLCLR(二)存储过程和自定义函数>>教育资源库 自定义函数和存储过程在.里其实都是方法。只是方法上方标注[Microsoft.SqlServer.Server.SqlProcedure] 和[Microsoft.SqlServer.Server.SqlFunction]不同而已。自定义函数又分TVF函数和Scalar两种,最大区别在于TVF返回表后者返回Scalar(标量),这一篇我们做一下比较。 先看两段代码 存储过程:usingSystem;usingSystem.Data;usingSystem.Data.
2、SqlClient;usingSystem.Data.SqlTypes;usingMicrosoft.SqlServer.Server;publicpartialclassStoredProcedures{ //这里是告诉sqlserver,这个方法要注册成存储过程 //我感觉[Attribute]这个东西翻译成标签更形像:) [Microsoft.SqlServer.Server.SqlProcedure] publicstaticvoidTestStoredProcedure(stringname,refs
3、tringoutstr) { //在此处放置代码 outstr=hello,+name; using(SqlConnection=neandcmd=.Createmand()) { cmd.mandText=Select*fromuserinfo; .Open(); //SqlContext.Pipe.Send这个方法输出结果集 //接受SqlDataRea
4、der,SqlDataRecord和string SqlContext.Pipe.Send(cmd.ExecuteReader()); //你也可以用下边这样 //SqlContext.Pipe.ExecuteAndSend(cmd); } } }}; 执行存储过程DECLAREnamenvarchar(4000)DECLAREoutstrnvarchar(4000)setname='davidfa
5、n'--TODO:在此处设置参数值。EXECUTE[TestProject].[dbo].[TestStoredProcedure] name ,outstrOUTPUTprintoutstr 结果如下 输出参数返回值 自定义函数 一,TVF函数 示例函数的作用是搜索目录下的某一类型的文件usingSystem;usingSystem.Data;usingSystem.Data.Sql;usingSystem.Data.SqlTypes;usingMicrosoft.SqlServer.Server;us
6、ingSystem.Collections;usingSystem.IO;usingSystem.Security.Principal;publicpartialclassUserDefinedFunctions{ //需要返回一个表时用TVF(streamingtable-valuedfunction) //可以用selectfrom语句查询这个方法的返回 //TVF需要返回Ienumerable接口,例如:Array,这里返回一个数组 //FillRoe为填充表行的方法 //TableDefinitio
7、n为表结构,对应FillRoe方法的参数 [Microsoft.SqlServer.Server.SqlFunction(FillRoe=BuildRoenvarchar(32),Lengthbigint,ModifiedDateTime)] pub123下一页>>>>这篇文章来自..,。licstaticIEnumerableFileListCs(stringdirectoryName,stringpattern) { FileInfo[]files; //模拟当前SQL安全上下文
8、 odified) { if(Obj!=null) { FileInfofile=(FileInfo)Obj; fileName=file.Name; fileLength=file.L
此文档下载收益归作者所有