成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server 帶列名導出到excel的實際操作

數據庫 SQL Server
我們今天主要描述的是SQL Server 帶列名導出到excel的實際操過程,我們是用sql語句來實現其存儲過程,以下就是文章的主要內容描述。

文章主要描述的是SQL Server 帶列名導出到excel的實際操過程,以及在其實際操作中的值得我們大家注意的事項與其實際應用代碼的描述,以下就是文章的主要內容的詳細描述,望大家在瀏覽之后會對其有更深的了解。

sql語句就用下面的存儲過程

 

數據SQL Server 帶列名導出Excel

導出查詢中的數據到Excel,包含字段名,文件為真正的Excel文件

,如果文件不存在,將自動創建文件

 

,如果表不存在,將自動創建表

 

基于通用性考慮,僅支持SQL Server 帶列名導出標準數據類型

 

鄒建 2003.10*/

 

調用示例

p_exporttb @sqlstr='select * from 地區資料'

,@path='c:',@fname='aa.xls',@sheetname='地區資料'

 

  1. */  
  2. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)  
  3. drop procedure [dbo].[p_exporttb]  
  4. GO 

create proc p_exporttb

@sqlstr sysname, 查詢語句,如果查詢語句中使用了order by ,請加上top 100 percent

 

@path nvarchar(1000), 文件存放目錄

 

@fname nvarchar(250), 文件名

 

@sheetname varchar(250)='' 要創建的工作表名,默認為文件名

 

  1. as   
  2. declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int  
  3. declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000) 

參數檢測

  1. if isnull(@fname,'')='' set @fname='temp.xls' 
  2. if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#') 

 

SQL Server 帶列名導出至excel,檢查文件是否已經存在

  1. if right(@path,1)<>'' set @path=@path+''  
  2. create table #tb(a bit,b bit,c bit)  
  3. set @sql=@path+@fname  
  4. insert into #tb exec master..xp_fileexist @sql 

數據庫創建語句

  1. set @sql=@path+@fname  
  2. if exists(select 1 from #tb where a=1)  
  3. set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE' 
  4. +';CREATE_DB="'+@sql+'";DBQ='+@sql  
  5. else  
  6. set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES' 
  7. +';DATABASE='+@sql+'"' 

連接數據庫

  1. exec @err=sp_oacreate 'adodb.connection',@obj out  
  2. if @err<>0 goto lberr  
  3. exec @err=sp_oamethod @obj,'open',null,@constr  
  4. if @err<>0 goto lberr  

 

創建表的SQL

  1. declare @tbname sysname  
  2. set @tbname='##tmp_'+convert(varchar(38),newid())  
  3. set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'  
  4. exec(@sql)  
  5.  
  6. select @sql='',@fdlist='' 
  7. select @fdlist=@fdlist+','+a.name  
  8. ,@sql=@sql+',['+a.name+'] '  
  9. +case when b.name in('char','nchar','varchar','nvarchar') then  
  10. 'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')'  
  11. when b.name in('tynyint','int','bigint','tinyint') then 'int'  
  12. when b.name in('smalldatetime','datetime') then 'datetime'  
  13. when b.name in('money','smallmoney') then 'money'  
  14. else b.name end  
  15. FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype  
  16. where b.name not in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')  
  17. and a.id=(select id from tempdb..sysobjects where name=@tbname)  
  18. select @sql='create table ['+@sheetname  
  19. +']('+substring(@sql,2,8000)+')'  
  20. ,@fdlist=substring(@fdlist,2,8000)  
  21. exec @err=sp_oamethod @obj,'execute',@out out,@sql  
  22. if @err<>0 goto lberr  
  23. exec @err=sp_oadestroy @obj  

 

導入數據

  1. set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES 
  2. ;DATABASE='+@path+@fname+''',['+@sheetname+' $])'  
  3. exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')  
  4. set @sql='drop table ['+@tbname+']'  
  5. exec(@sql)  
  6. return  
  7. lberr:  
  8. exec sp_oageterrorinfo 0,@src out,@desc out  
  9. lbexit:  

 

select cast(@err as varbinary(4)) as 錯誤號

 

,@src as 錯誤源,@desc as 錯誤描述

 

select @sql,@constr,@fdlist

以上的相關內容就是對

SQL Server 帶列名導出至excel的介紹,望你能有所收獲。

【編輯推薦】

  1. MS-SQL server數據庫開發中的技巧
  2. SQL Server里調用COM組件的操作流程
  3. 配置Tomcat+SQL Server2000連接池流程
  4. SQL Server Model增加一些變化,很簡單!
  5. 易混淆的SQL Server數據類型列舉


 

責任編輯:佚名 來源: 網絡轉載
相關推薦

2010-07-23 09:25:50

SQL Server導

2010-07-21 15:22:07

2010-07-07 11:03:21

SQL Server索

2010-06-28 12:39:14

SQL Server數

2010-07-16 11:10:52

SQL server

2010-06-28 12:27:35

SQL Server

2010-06-30 17:56:06

2010-07-05 12:21:57

SQL Server記

2010-07-12 10:13:44

SQL Server表

2010-07-06 09:20:30

SQL Server查

2010-06-17 12:26:51

SQL Server索

2010-06-28 13:27:33

SQL Server視

2010-06-18 08:30:48

SQL Server

2010-04-16 17:17:31

Oracle訪問

2010-07-05 10:15:40

SQL Server

2010-07-20 11:13:09

SQL Server日

2010-07-21 09:28:34

SQL Server

2010-07-09 12:49:41

SQL Server自

2010-07-23 14:26:37

SQL Server存

2010-07-02 11:10:56

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品欧美精品系列 | 色一级 | 国产精品久久精品 | 2019天天操 | 亚洲黄色av | 欧美99久久精品乱码影视 | 国产欧美一级 | 成人免费在线观看视频 | 国产精品福利网站 | 日韩精品一区二区三区 | 一呦二呦三呦国产精品 | 精品国产18久久久久久二百 | 一区二区三区精品 | 亚洲成人中文字幕 | 超碰综合 | 成人精品久久日伦片大全免费 | 99久久婷婷国产综合精品电影 | 91久久精品视频 | 成人免费视频观看视频 | 久久久久久av | www.色综合| 欧美aⅴ片 | 国产一区黄色 | 免费欧美视频 | 中文在线一区 | 中文字幕综合 | 日韩欧美二区 | 九九热这里只有精品在线观看 | 亚洲综合首页 | 日本大片在线播放 | 日韩综合在线播放 | 一级欧美 | 黄色av网站在线观看 | 最新av在线网址 | 亚洲天堂一区 | 久久毛片 | 亚洲一区二区三区四区五区午夜 | 91精品国产麻豆 | 天天草天天干天天 | 91在线导航| 亚洲综合色视频在线观看 |