方法一:对于会写查询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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)