易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server导出表到EXCEL文件的存储过程


SQL Server导出表到EXCEL文件的存储过程
 
发布时间:2008.07.11 09:00     来源:赛迪网    作者:小乔
【赛迪网-IT技术报道】SQL Server导出表到EXCEL文件的存储过程:
*--数据导出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+'"'
 
--连接数据库
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
 
--创建表的SQL
select @sql='',@fdlist=''
select @fdlist=@fdlist+','+a.name
,@sql=@sql+',['+a.name+'] '
+case when b.name in('char','nchar','varchar','nvarchar') then
'text('+cast(


相关文档:

sql嵌套查询

select * from sq_donglong.achi_news where ID in (select ID from (select top 6 ID from sq_donglong.achi_news where SortID=82)a union all select ID from (select top 6 ID from sq_donglong.achi_news where SortID=84)b)
......

java中使用jdbc连接sql server 2005

准备工作
首先,操作系统中安装好SQL Server 2000/2005,如果系统中都装有2000和2005版,记得停用一个,只开一个行了。
然后,到微软网站下载Microsoft SQL Server 2005 JDBC Driver 1.1
,也可以使用这个地址直接下载

解压sqljdbc_1.1.1501.101_chs.exe,把sqljdbc_1.1复制到%ProgramFiles%(如果系统在C盘则为C:\ ......

SQL分组排序

今天遇到个有意思的问题,是一个分组排序的问题,不过要求分组和分组间也要排序,如果这个组内有一条数据是最近更新的,那么这整个组都应该排在前面。
下面以Oracle的HR示例Schema中的employees表为例:
语句按部门分组,分组之间的排序是这样的:如果整个分组中有一个员工的hire_date是最新的,那么这个分组就应该排在其 ......

SQL server2005创建计划任务(转)

我们在开发过程中,经常遇到这样问题,就是要求定期进行数据库的检查,如果发现特定数据,那么就要进行某项操作,这个需求呢,可以利用Windows的计划任务,定期执行某一个应用程序,去检索数据;也可以让程序自己控制。其实SQL Server自己也可以创建计划任务,定期进行执行。如果数据库服务器允许,可以考虑采用这种方式。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号