[SQL]使用CLR存储过程方便快捷导出数据到Excel

baacloud免费翻墙vpn注册使用

转载:http://www.cnblogs.com/NickYao/archive/2009/12/03/1616101.html

  今天早上看到一篇文章(Exporting to Excel Using a CLR Stored Procedure )觉得非常实用,就拿来跟大家分享一下。  
  这篇文章主要提供了一个SQL Server导出数据到Excel一个快捷方便的方式,如果你日常工作常常需要从数据库导出数据到Excel的话,你会发现这对你非常有用。
    

  好了,废话少说,我这里就简单说一下如何使用:
     1. 下载代码ExcelExport.zip
     2. 编译项目,把生成的dll复制到一个目录,例如:c:\CLR
     3. 在SQL SERVER上启用CLR

sp_configure'clr',1
reconfigure

  4. 使用Alter DATABASE 命令打开 Trustworthy 数据库属性

Alter DATABASE 数据库名 SET TRUSTWORTHY ON

  5. 创建程序集

Create ASSEMBLY ExportToExcel
FROM 
'C:\CLR\ExcelExport.dll' CLR 程序集存放的地方
WITH PERMISSION_SET 
= EXTERNAL_ACCESS

  6. 创建一个存储过程关联到上一步创建的程序集

Create PROCEDURE[dbo].[prc_ExportToExcel]
       @proc [nvarchar](100),
       @path [nvarchar](200),
       @filename [nvarchar](100),
       @params xml
AS
EXTERNAL NAME [ExportToExcel].[StoredProcedures].[ExportToExcel]

  7. 好了,到这里准备工作就算完成了,下面是使用的例子:

Declare @params xml
Set @params 
= '<params><param name="lastname" value="Smith" /><param name="country" value="US" /></params>'
exec prc_ExportToExcel 
'procname',‘Drive:\Directory\''Filename', @params

  a) 第一个参数是获取数据的存储过程名

  b) 第二个参数是输出的目录

  c) 第三个参数是输出的文件名,不需要带后缀

  d) 第四个参数是获取数据的存储过程需要的参数。name代表参数名,value代表参数值。

    如果获取数据的存储过程没有参数的话,就使用:Set @params ='<params></params>'

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏