多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > Sqlserver > 將SQLServer結(jié)果導(dǎo)出為excel文件

將SQLServer結(jié)果導(dǎo)出為excel文件

來源:程序員人生   發(fā)布時間:2013-12-18 20:30:30 閱讀次數(shù):3418次

相信大家常常會遇到將SqlServer查詢結(jié)果導(dǎo)出到Excel的問題。如果導(dǎo)出的次數(shù)少,直接“Save Results As...”就是了;但是當(dāng)要分別在每個表取樣,那就相當(dāng)麻煩了。今天就為大家提供一個脫離office組件的可以將語句結(jié)果導(dǎo)出到Excel的過程,希望會對大家有幫助!

---導(dǎo)出到Excel
---使用說明:
-- 1.執(zhí)行時所連接的服務(wù)器決定文件存放在哪個服務(wù)器
-- 2.遠(yuǎn)程查詢語句中,要加上數(shù)據(jù)庫名
ALTER PROC ExportFile
@QuerySql VARCHAR(max)
,@Server VARCHAR(20)
,@User VARCHAR(20)
,@Password VARCHAR(20)
,@FilePath NVARCHAR(100) = 'c:ExportFile.xls'
AS
DECLARE @tmp VARCHAR(50) = '[##Table' + CONVERT(VARCHAR(36),NEWID())+']'
BEGIN TRY
DECLARE @Sql VARCHAR(max),@DataSource VARCHAR(max)='';
--判斷是否為遠(yuǎn)程服務(wù)器
IF @Server <> '.' AND @Server <> '127.0.0.1'
SET @DataSource = 'OPENDATASOURCE(''SQLOLEDB'',''Data Source='+@Server+';User ID='+@User+';Password='+@Password+''').'
--將結(jié)果集導(dǎo)出到指定的數(shù)據(jù)庫
SET @Sql = REPLACE(@QuerySql,' from ',' into '+@tmp+ ' from ' + @DataSource)
PRINT @Sql
EXEC(@Sql)

DECLARE @Columns VARCHAR(max) = '',@Data NVARCHAR(max)=''
SELECT @Columns = @Columns + ',''' + name +''''--獲取列名(xp_cmdshell導(dǎo)出文件沒有列名)
,@Data = @Data + ',Convert(Nvarchar,[' + name +'])'--將結(jié)果集所在的字段更新為nvarchar(避免在列名和數(shù)據(jù)union的時候類型沖突)
FROM tempdb.sys.columns WHERE object_id = OBJECT_ID('tempdb..'+@tmp)
SELECT @Data = 'SELECT ' + SUBSTRING(@Data,2,LEN(@Data)) + ' FROM ' + @tmp
SELECT @Columns = 'Select ' + SUBSTRING(@Columns,2,LEN(@Columns))
--使用xp_cmdshell的bcp命令將數(shù)據(jù)導(dǎo)出
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE
DECLARE @cmd NVARCHAR(4000) = 'bcp "' + @Columns+' Union All ' + @Data+'" queryout ' + @FilePath + ' -c -T'
PRINT @cmd
exec sys.xp_cmdshell @cmd
EXEC sp_configure 'xp_cmdshell',0
RECONFIGURE
EXEC('DROP TABLE ' + @tmp)
END TRY
BEGIN CATCH
--處理異常
IF OBJECT_ID('tempdb..'+@tmp) IS NOT NULL
EXEC('DROP TABLE ' + @tmp)
EXEC sp_configure 'xp_cmdshell',0
RECONFIGURE

SELECT ERROR_MESSAGE()
END CATCH

PS:先不要著急使用,該版本是基于xp_cmdshell的,因為要創(chuàng)建文件,所以要保證你的用戶能有文件管理的權(quán)限,通常簡單點的方法就是將sql server的啟動用戶設(shè)置為本地系統(tǒng)用戶

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日本乱人伦片中文三区 | 一区二区三区在线 | 网站 | 一区二区三区毛片免费 | 午夜dj免费视频观看在线播放 | 自拍偷拍第一页 | 国产精品60岁老女人 | 日本免费一区二区三区最新vr | 欧美激情一级欧美精品 | 国产成人经典三级在线观看 | 精品三级内地国产在线观看 | 最近中文字幕大全高清在线 | 亚洲精品456在线播放 | 欧美秋霞特色大片2020 | 欧美一级成人一区二区三区 | 精品国产免费一区二区三区五区 | 老司机午夜精品视频 | 久久久久久久国产精品 | 羞羞色在线 | 国内精品一级毛片免费看 | xxxxxx性受| 亚洲欧美精品一中文字幕 | 疯狂奶水freeseⅹ | 综合亚洲精品一区二区三区 | 好吊妞视频在线观看 | 波多野结衣免费视频观看 | 亚洲精品无码专区在线播放 | 欧美 亚洲 中文字幕 | 欧美日韩国产色综合一二三四 | 91精品欧美一区二区综合在线 | 性香港xxxxx免费视频播放 | 成年人免费看视频 | 看毛片网站 | 亚洲人成777在线播放 | purnhurb国产在线观看 | 国内自拍 亚洲系列 欧美系列 | xxxx性欧美| 亚洲精品成人中文网 | 亚洲黄色网址在线观看 | 久久性久久性久久久爽 | 波多野结衣精品一区二区三区 | 在线视频一本 |