热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

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

相信大家常常会遇到将SqlServer查询结果导出到Excel的问题。如果导出的次数少,直接SaveResultsAs...就是了;1.1准备好查询语句1.2选择数据库,启动导入和导出向导1.3选择数据源1.4选择目标1.51.61.71.8后续步骤不再附图,一直点下一步按钮就好。

相信大家常常会遇到将SqlServer查询结果导出到Excel的问题。如果导出的次数少,直接Save Results As...就是了; 1.1准备好查询语句 1.2选择数据库,启动导入和导出向导 1.3选择数据源 1.4选择目标 1.5 1.6 1.7 1.8 后续步骤不再附图,一直点下一步按钮就好。

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

  1.1准备好查询语句

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

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

  1.3选择数据源

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

  1.4选择目标

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

  1.5

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

  1.6

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

  1.7

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

  1.8

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

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

  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;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

  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

  先不要着急使用,该版本是基于xp_cmdshell的,因为要创建文件,所以要保证你的用户能有文件管理的权限,通常简单点的方法就是将sql server的启动用户设置为本地系统用户

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

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

  好了,现在我们来执行看看:

  --查询分析器连接哪个服务器,文件就在哪个服务器上

  --本地导出

  EXEC dbo.ExportFile @QuerySql = 'select * from sys.objects', -- varchar(max)

  @Server = '.', -- varchar(20)

  @FilePath = N'c:objects.xls' -- nvarchar(100)

  --远程导出

  EXEC dbo.ExportFile @QuerySql = 'select * from master.sys.objects', -- varchar(max)

  @Server = '192.168.1.52', -- varchar(20)

  @User = 'sa', -- varchar(20)

  @Password = 'sa', -- varchar(20)

  @FilePath = N'c:52objects.xls' -- nvarchar(100)

  执行结果如下,显示导出条数,就没有报错,再看看你的C盘,多了2个文件就大功告成了:

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

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

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
author-avatar
Hide-my-love
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有