2017-07-27
写出SQLServer导出表到E
*--数据导出EXCEL
导出表中的数据到Excel,包含字段名,文件为真正的Excel文件
,如果文件不存在,将自动创建文件
,如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
---*/
/**//*--调用示例
p_exporttb @tbname='地区资料',@path='c:',@fname='aa。 xls'
--*/
if exists (select * from dbo。sysobjects where id = object_id(N'[dbo]。[p_exporttb]') and
OBJECTPROPERTY(id, N'IsProcedure...全部
*--数据导出EXCEL
导出表中的数据到Excel,包含字段名,文件为真正的Excel文件
,如果文件不存在,将自动创建文件
,如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
---*/
/**//*--调用示例
p_exporttb @tbname='地区资料',@path='c:',@fname='aa。
xls'
--*/
if exists (select * from dbo。sysobjects where id = object_id(N'[dbo]。[p_exporttb]') and
OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo]。
[p_exporttb]
GO
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 5。0;HDR=YES'
+';DATABASE='+@sql+'"'。收起