求助,sqlserver2005存储过程如何返回这样的结果集

 我来答
px...0@sina.com
2016-12-20 · 超过197用户采纳过TA的回答
知道小有建树答主
回答量:544
采纳率:0%
帮助的人:305万
展开全部
  部署CLR存储过程
  上面的示例代码需要进行编译才能通过存储过程来调用。在命令行中执行下面的命令来编译这些代码并创建类库DLL MSSQLTipsCLRLib.dll: 
CSC/target:libraryStoredProcedures.cs/out:MSSQLTipsCLRLib.dll
  假设你使用的是Microsoft .NET框架的第二版本,那么你可以在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下看到CSC.EXE。
  执行下面的T-SQL脚本来创建这个存储过程: 
ALTERDATABASEmssqltips
  SETTRUSTWORTHYON  GO  USEmssqltips  GO  CREATEASSEMBLYMSSQLTipsCLRLib
  FROM'C:\mssqltips\MSSQLTipsCLRLib.dll'
  WITHPERMISSION_SET=EXTERNAL_ACCESS  GO  CREATEPROCEDUREdbo.GetListOfFiles
  @pathNVARCHAR(256)
  ,@patternNVARCHAR(64)
  ,@recursiveBIT  AS  EXTERNALNAMEMSSQLTipsCLRLib.StoredProcedures.GetListOfFiles
  在编译了这个代码到类库(.dll)之后,CREATE ASSEMBLY命令就被执行了,它将这个DLL与ASSEMBLY数据库对象关联起来。FROM条件从句必须指向DLL的实际路径。PERMISSION_SET必须设置为EXTERNAL_ACCESS,因为.NET代码将访问SQL Server 之外的文件系统。TRUSTWORTHY选项被设置为on,以允许外部访问。最后,CREATE PROCEDURE命令的EXTERNAME NAME将这个集合、类和函数与这个存储过程名称关联起来。
  要执行这个存储过程,执行下面的脚本:
EXECdbo.GetListOfFiles'C:\mssqltips','*.*',0
    你将看到类似于下面的输出,这取决于你选择的文件夹的内容;例如,一个只有一列、每一行是一个文件的结果集:  图2  接下来的步骤
  在这里下载示例脚本并执行从一个CLR存储过程返回结果集。
  记住,当在Microsoft .NET框架中有满足你需求的函数时,使用SQL Server的CLR可能是个很好的解决方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式