怎样从SQL Server 2005 CLR存储过程返回结果集
2008-09-05 10:01:56 来源:WEB开发网核心提示:问题 我们有时会遇到关于CLR函数或存储过程的需求,例如我们可能需要调用一个存储过程来获得某一特定文件夹下的文件列表,怎样从SQL Server 2005 CLR存储过程返回结果集,我们怎样使用CLR将文件列表作为一个标准结果集(例如行和列)返回呢?专家解答SQL Server 2005和之后的版本集成了CLR(通用语
问题
我们有时会遇到关于CLR函数或存储过程的需求。例如我们可能需要调用一个存储过程来获得某一特定文件夹下的文件列表。我们怎样使用CLR将文件列表作为一个标准结果集(例如行和列)返回呢?
专家解答
SQL Server 2005和之后的版本集成了CLR(通用语言运行时),它使得我们可以使用Microsoft .NET代码编写存储过程、触发器、用户友好的函数、用户友好的聚合和用户友好的类型;例如Visual Basic .NET或C#。被增强的各种T-SQL CREATE命令使得我们可以定义一个数据库对象(例如一个存储过程)并将我们的.NET代码与它连接起来。当你执行这个存储过程的时候,.NET代码就被执行了。
当编写一个存储过程或函数时,返回数据所用的最常见方法是结果集。在这篇技巧中,我们将执行一个存储过程来获得某个文件夹的文件列表并将这个列表作为一个具有行和一列的标准结果集返回。我们将执行下面的步骤:
激活CLR。
获得C#代码示例。
部署CLR存储过程。
激活CLR
默认情况下,在SQL Server 2005中CLR没有激活。你可以通过执行外围应用配置器(Surface Area Configuration)工具或sp_configure来激活CLR。在外围应用配置器中点开层级找到CLR Integration,然后点击复选框来激活它,如下图所示:
要使用sp_configure来激活CLR,执行下面的脚本:
sp_configure'clrenabled',1
GO
reconfigure
GO
代码示例
下面的C#函数将获得某文件夹的文件列表并将这个列表作为一个结果集返回。这个函数的参数如下所示:
[]
更多精彩
赞助商链接