>教育資源庫 自定義函數和存儲過程在.里其實都是方法。只是方法上方標注[Microsoft.SqlServer.Server.SqlProcedure] 和[Microsoft.SqlServer">
ID:22725960
大?。?7.00 KB
頁數:8頁
時間:2018-10-31
《sqlclr(二)存儲過程和自定義函數》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、SQLCLR(二)存儲過程和自定義函數>>教育資源庫 自定義函數和存儲過程在.里其實都是方法。只是方法上方標注[Microsoft.SqlServer.Server.SqlProcedure] 和[Microsoft.SqlServer.Server.SqlFunction]不同而已。自定義函數又分TVF函數和Scalar兩種,最大區(qū)別在于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); } } }}; 執(zhí)行存儲過程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
此文檔下載收益歸作者所有