国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

sqlserver任務(wù)導(dǎo)出Excle

2024-07-21 02:47:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
sqlserver任務(wù)導(dǎo)出Excle

--sql語(yǔ)句就用下面的存儲(chǔ)過(guò)程/*--數(shù)據(jù)導(dǎo)出Excel導(dǎo)出查詢中的數(shù)據(jù)到Excel,包含字段名,文件為真正的Excel文件,如果文件不存在,將自動(dòng)創(chuàng)建文件,如果表不存在,將自動(dòng)創(chuàng)建表基于通用性考慮,僅支持導(dǎo)出標(biāo)準(zhǔn)數(shù)據(jù)類型

使用方法:

直接復(fù)制執(zhí)行創(chuàng)建儲(chǔ)存過(guò)程--陳潤(rùn)程 2014.04--*//*--調(diào)用示例p_exporttb @sqlstr='select * from 表名',@path='c:/',@fname='aa.xls',@sheetname='sheet1'--*/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 @sqlstr sysname, --查詢語(yǔ)句,如果查詢語(yǔ)句中使用了order by ,請(qǐng)加上top 100 percent @path nvarchar(1000), --文件存放目錄 @fname nvarchar(250), --文件名 @sheetname varchar(250)='' --要?jiǎng)?chuàng)建的工作表名,默認(rèn)為文件名as declare @err int,@src nvarchar(255),@desc nvarchar(255),@out intdeclare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)--參數(shù)檢測(cè)if isnull(@fname,'')='' set @fname='temp.xls'if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')--檢查文件是否已經(jīng)存在if right(@path,1)<>'/' set @path=@path+'/'create table #tb(a bit,b bit,c bit)set @sql=@path+@fnameinsert into #tb exec master..xp_fileexist @sql--數(shù)據(jù)庫(kù)創(chuàng)建語(yǔ)句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE' +';CREATE_DB="'+@sql+'";DBQ='+@sqlelseset @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES'+';DATABASE='+@sql+'"'--連接數(shù)據(jù)庫(kù)exec @err=sp_oacreate 'adodb.connection',@obj outif @err<>0 goto lberrexec @err=sp_oamethod @obj,'open',null,@constrif @err<>0 goto lberr--創(chuàng)建表的SQLdeclare @tbname sysnameset @tbname='##tmp_'+convert(varchar(38),newid())set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'exec(@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(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','datetime') then 'datetime'when b.name in('money','smallmoney') then 'money'else b.name endFROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertypewhere b.name not in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')and a.id=(select id from tempdb..sysobjects where name=@tbname)select @sql='create table ['+@sheetname+']('+substring(@sql,2,8000)+')',@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj,'execute',@out out,@sqlif @err<>0 goto lberrexec @err=sp_oadestroy @obj--導(dǎo)入數(shù)據(jù)set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES;DATABASE='+@path+@fname+''',['+@sheetname+'$])'exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')set @sql='drop table ['+@tbname+']'exec(@sql)returnlberr:exec sp_oageterrorinfo 0,@src out,@desc outlbexit:select cast(@err as varbinary(4)) as 錯(cuò)誤號(hào),@src as 錯(cuò)誤源,@desc as 錯(cuò)誤描述select @sql,@constr,@fdlist


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武定县| 焦作市| 武穴市| 安吉县| 新闻| 文水县| 都江堰市| 舞阳县| 高青县| 政和县| 湟源县| 曲麻莱县| 开远市| 莱西市| 碌曲县| 青岛市| 错那县| 海丰县| 泸定县| 抚宁县| 龙胜| 磐石市| 乌鲁木齐市| 罗江县| 松江区| 合山市| 锡林郭勒盟| 南康市| 会泽县| 眉山市| 甘孜县| 山阳县| 山东| 乌兰察布市| 凤山市| 且末县| 淄博市| 晋州市| 治多县| 潜江市| 晋江市|