Sql Server 数据库表查询结果导出为excel文件

  次阅读 作者:智能小宝 来源:互联网 2016-03-01 10:21 我要评论(0)

相信大家常常会遇到将SqlServer查询结果导出到Excel的问题。如果导出的次数少,直接“Save Results As...”就是了;

1.1准备好查询语句

1.2选择数据库,启动导入和导出向导

1.3选择数据源

1.4选择目标

1.5

1.6

1.7

1.8

后续步骤不再附图,一直点“下一步”按钮就好。

2、但是当要分别在每个表取样,那就相当麻烦了。今天就为大家提供一个脱离office组件的可以将语句结果导出到Excel的过程,希望会对大家有帮助!

---导出到Excel

---使用说明:

-- 1.执行时所连接的服务器决定文件存放在哪个服务器

-- 2.远程查询语句中,要加上数据库名

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)='';

--判断是否为远程服务器

IF @Server <> '.' AND @Server <> '127.0.0.1'

SET @DataSource = 'OPENDATASOURCE(''SQLOLEDB'',''Data Source='+@Server+';User ID='+@User+';Password='+@Password+''').'

--将结果集导出到指定的数据库

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导出文件没有列名)

,@Data = @Data + ',Convert(Nvarchar,[' + name +'])'--将结果集所在的字段更新为nvarchar(避免在列名和数据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命令将数据导出

EXEC sp_configure 'xp_cmdshell',1

RECONFIGURE

DECLARE @cmd NVARCHAR(4000) = 'bcp "' + @Columns+' Union All ' + @Data+'" queryout ' + @FilePath + ' -c -T'

PRINT @cmd

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...