sqlserver导出大量数据到Excel


记录导出数据遇到的坑~~~

sqlserver 导出数据到Excel最简单的方法是将查询出来的结果,右键–>另存为excel或者txt。但是这种方式有明显缺点,如果内容中有特殊的字符,往往会影响我们导出的excel准确性。比如有回车符的时候excel格式也会窜行,影响数据识读性。这就导致了我sql查询出的结果是2万条,但是实际导出的时候看行号却少了几百条。

另一种方式更加标准化一些,利用sqlserver自带的导出功能。右键数据库–>任务–>导出数据–>指定数据源和目标文件。

这里要注意一下,在指定文件的时候往往导出Excel文件后缀会默认为.xls,无论这里选择了97-03版本还是07版本,这里都是.xls。据观察.xls和.csv在存储相同数量的文件时,文档大小要远大于.xlsx。所以,在这里要手动调整一下文档的后缀名为.xlsx。这样在遇到“电子表满”的问题前可以存储更多的数据

sql server 2019 批量从其他数据库导入表 sqlserver批量导出表_数据库

(当然我的数据库是管理工具是2014版的,新版本可能没这个问题,不过我没有尝试。)

上步操作可以增加导出数据的量,但是导出大量数据时往往会很慢,这时可以利用另一个操作。“编辑映射”

sql server 2019 批量从其他数据库导入表 sqlserver批量导出表_excel_02

sql server 2019 批量从其他数据库导入表 sqlserver批量导出表_数据_03

数据库导出时往往把一个很小的字段指定的类型非常长。这样会影响我们的导出速度,可以手动更改一下,比如讲Longtext改为varcha,并根据实际情况定义一下长度。这样会大大提高导出速度。

导出数据条数和字段多少、长度都有关系,具体没有测试过它的极限,仍有可能因为大量数据导出时出现“电子表满”的情况,但是已经完美解决了我遇到的问题

最后总结一点,其实前面巴拉巴拉的经验都没啥用,安装一个神器,百度SQLPrompt插件,查询后右键就能直接另存。。。