如何将sqlserver 上百万行的表导出到excel

如何将sqlserver 上百万行的表导出到excel,第1张

方法一:对于会写查询SQL语句的则是直接写查询语句查询出结果。如下图

接下来到桌面新建一个空的excel文件

接下来回到SQLServer查询界面。鼠标右键点击查询结果的左上角空白列,点击“连同标题一起复制”。则已复制好了数据。如下图:

接下来打开之前建好的Excel文件把复制好的数据黏贴到excel即可。如下图:

方法二:对于不会写查询SQL语句的则使用数据库导出方法。

选中要导出数据的数据库,点击右键会d出一个右键菜单。点击“任务”再点击“导出数据(x)”。如下图:

点击了“导出数据(x)”后会d出一个界面,并填写好信息。如下图:

点击下一步跳转到如下图1中的界面。在目标中选中excel类型,界面信息则发生改变,并选中导出的excel路径。如下图2。

点击下一步跳转至如下界面,选中第一个选项。如下图:

点击下一步,勾选要导出的表。如下图:

点击下一步,跳转至如下界面:

点击下一步:跳转到如下图1界面,选择下一步在点击完成,则会跳到如下图2界面。证明已经导出成功了。

打开excel就可用看到导出的Excel了。如下图:

1、编写SQL存储过程(procedure);

2、使用SQL的BCP与exec masterxp_cmdshell命令完成指定数据表或内容导出;

3、使用SQL Server代理作业实现定时自动执行导出。

下面是过程详解,若你还有更好的方式,盼告知。

工具/原料

SQL Server Management Studio

BCP与exec masterxp_cmdshell

方法/步骤

1

Create一个新的procedure,在开头可以做一个判断来决定什么时候执行数据结果导出,下面来看看这个存储过程:

Create procedure [dbo][pr_Dept_Bak]

as

begin

---这里可以增加对数据表的查询条件或更多的数据处理;

---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;

declare @file_path varchar(200);--导出EXCEl文件的路径;

declare @file_name varchar(200);--导出EXCEl的文件名;

declare @exec_sql varchar(200);--SQL语句;

---分开定义是为了以后修改路径或文件名更方便。

set @file_path = 'E:\Dept_Bak\'

set @file_name = 'dept' + CONVERT(varchar(100), GETDATE(), 112)+'xls'

set @exec_sql = 'select from bookdbousers_dept' ---数据表使用的完整路径;

set @exec_sql = ' bcp "'+@exec_sql+'" queryout "'+@file_path+''+@file_name+'" -c -T -U "sa" -P "SQLpassword"';

----U "sa" -P "SQLpassword" 这是数据库的sa账号和密码;

exec masterxp_cmdshell @exec_sql

end

2

以上存储过程pr_Dept_Bak建立,需要导出的数据表是users_dept,导出的位置是数据库本地计算机的E:\Dept_Bak文件夹下。需要将这个文件夹建立好。

3

准备好之后,我们需要进行测试一下pr_Dept_Bak是否成功,执行pr_Dept_Bak存储过程,可以看到执行结果是成功的,若这里不成功,则需要检查一下带存储过程中的BCP与exec masterxp_cmdshell命令的格式是否正确。

4

导出功能实现了,现在需要设置定时自动执行导出。在SQL Server Management Studio中,SQL Server代理-作业-新建作业。

5

为新的作业设定名称,可以中文或英文,只是为了方便区分其它作业。

6

在步骤中,点击新建作业执行步骤。即需要定时自动执行的存储过程pr_Dept_Bak。为什么使用的存储过程,也是因为以后需要添加或修改功能更方便,而且存储过程更文件测试问题所在。

7

注意选择数据库,命令中输入exec pr_Dept_Bak 执行存储过程。因为命令语句都在存储过程中,所以这里就相对比较简单。

8

最后就是设定定时自动执行计划,如每天的XX时间自动执行这个存储过程,或间隔多少小时导出SQL表一次。

9

作业建立之后,则可以执行作业步骤来测试一次,是成功,右键点击建立的作业pr_Dept_Bak,作业开始步骤。

10

作业成功,若不成功,可以看到错误提示,可以在作业活动监视器中查看作业失败的原因,针对解决问题。

11

到E:\Dept_Bak文件夹下,可以看到导出的EXCEL文件了,接下来还可以使用的SQL的邮件功能,自动将这个EXCEL文件发送给指定的邮箱接收者。

sql文件转成excel表格的步骤:

1、将sql文件放入数据库执行(这边以mysql数据库为例),SQL命令行 *** 作:

sql>@full_path/testsql;

例:sql>@D:/testsql;

不需要commit; 一般都是在testsql 里面最后加上一个commit;

2、从数据库导出数据至excel表格,SQL命令行 *** 作:

sql>select into outfile 'd:/testxls' from 表名;

例:sql>select into outfile 'd:/testxls' from test;

将mysql表结构导出成Excel格式的,以下介绍方法:

用Navicat for MySQL工具打开,右键表选择转存sql文件

填写导出名,格式修改为xls

导出成功,关闭窗口

查看excel文件,可看到表结构,表信息

将数据导出成excel格式:

用Navicat for MySQL工具打开表,对表查询

将查询的结果进行导出,点击导出向导,选出导出的excel格式

选择导出本地路径

勾选上列名

点击开始

导出完成,点关闭

可以打开刚才导出的excel

--如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:

insert into OPENROWSET( 'MICROSOFTJETOLEDB40 '

, 'Excel 50;HDR=YES;DATABASE=c:\testxls ',sheet1$)

select from 表

--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:

--导出表的情况

EXEC masterxp_cmdshell 'bcp 数据库名dbo表名 out "c:\testxls " /c -/S "服务器名 " /U "用户名 " -P "密码 " '

--导出查询的情况

EXEC masterxp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubsauthors ORDER BY au_lname " queryout "c:\testxls " /c -/S "服务器名 " /U "用户名 " -P "密码 " '

1、打开软件,在数据库中有一张student表,现在要把这张表中的数据导出成excel文件。

2、右击选择“Export”,再选择“Export Table Data as CSV,SQL,Excel etc ”。

3、在导出配置页面中选择“Excel XML”选项。

4、点击下面的三个点按钮并选择导出路径。

5、输入文件名,点击“保存“选项。

6、将文件的后缀名改成xls,点击“Export”选项。

以上就是关于如何将sqlserver 上百万行的表导出到excel全部的内容,包括:如何将sqlserver 上百万行的表导出到excel、怎么定时自动将SQL数据导出为Excel文件、.sql怎么转成excel等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9277005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存