电脑技术吧

会员投稿 会员登录 会员注册 网站公告:
搜索: 您现在的位置主页 > SQL亚博ios下载地址 > 数据库 > 正文

存储过程导数据到Excel

作者:admin    文章来源:互联网 电脑技术吧     点击数:    更新时间:2011-09-27
收藏】 【挑错】 【推荐】 【打印

 /*--数据导出EXCEL

导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件
,如果文件不存在,将自动创建文件
,如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
作者:邹建
--*/

/*--调用示例

p_exporttb @sqlstr=''select * from 地区资料''
,@path=''c:\'',@fname=''aa.xls'',@sheetname=''地区资料''
--*/



create proc p_exporttb
@tbname sysname,  --要导出的表名
@path nvarchar(1000), --文件存放目录
@fname nvarchar(250)='''' --文件名,默认为表名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)

--参数检测
if isnull(@fname,'''')='''' set @fname=@tbname ''.xls''

--检查文件是否已经存在
if right(@path,1)<>'''' set @path=@path ''''
create table #tb(a bit,b bit,c bit)
set @sql=@path @fname
insert into #tb exec master..xp_fileexist @sql 织梦内容管理系统

--数据库创建语句
set @sql=@path @fname
if exists(select 1 from #tb where a=1)
set @constr=''DRIVER={Microsoft Excel Driver (*.xls)};DSN='''''''';READONLY=FALSE''
  '';CREATE_DB="'' @sql ''";DBQ='' @sql
else
set @constr=''Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES''
'';DATABASE='' @sql ''"''


--连接数据库
exec @err=sp_oacreate ''adodb.connection'',@obj out
if @err<>0 goto lberr

exec @err=sp_oamethod @obj,''open'',null,@constr
if @err<>0 goto lberr

/*--如果覆盖已经存在的表,就加上下面的语句
--创建之前先删除表/如果存在的话
select @sql=''drop table ['' @tbname '']''
exec @err=sp_oamethod @obj,''execute'',@out out,@sql
--*/

--创建表的SQL
select @sql='''',@fdlist=''''
select @fdlist=@fdlist '',['' a.name '']''
,@sql=@sql '',['' a.name ''] ''
case when b.name in(''char'',''nchar'',''varchar'',''nvarchar'') then

内容来自dedecms

''text('' cast(case when a.length>255 then 255 else a.length end as varchar) '')''
when b.name in(''tynyint'',''int'',''bigint'',''tinyint'') then ''int''
when b.name in(''smalldatetime'',

织梦内容管理系统

发表评论 请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:密码:新注册匿名
评论总数: [ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 在线帮助