SQL Server Management Studio 2012 – 导出/从表格导入数据
我有三百多万行的桌子。 我已经尝试从它手动Export data
并使用SQL Server Management Studio Export data
function到Excel,但遇到了几个问题:
-
当创build.txt文件手动复制和粘贴数据(这是几次,因为如果你从SQL Serverpipe理工作室复制所有行它会抛出内存错误)我无法用任何文本编辑器打开它并复制行;
-
将
Export data
到Excel不起作用,因为Excel不支持如此多的行
最后,通过Export data
function,我创build了一个.sql
文件,但它是1.5 GB,我无法再次在SQL Server Management Studio中打开它。
有没有办法导入Import data
function,或者其他更聪明的方式来备份我的表的信息,然后再导入它,如果我需要它?
提前致谢。
我不太清楚,如果我理解你的要求(我不知道你是否需要将你的数据导出为Excel或者你想做某种备份)。
为了从单个表中导出数据,您可以使用批量复制工具 ,该工具允许您从单个表中导出数据并将其导出/导入到文件。 您也可以使用自定义查询来导出数据。
这不是生成Excel文件,而是另一种格式,这一点很重要。 您可以使用它将数据从一个数据库移动到另一个数据库(在这两种情况下都必须是MS SQL)。
示例:创build一个格式文件:
Bcp [TABLE_TO_EXPORT]格式“[EXPORT_FILE]”-n -f“[FORMAT_FILE]”-S [SERVER] -E -T -a 65535
从表中导出所有数据:
bcp [TABLE_TO_EXPORT] out“[EXPORT_FILE]”-f“[FORMAT_FILE]”-S [SERVER] -E -T -a 65535
导入以前导出的数据:
[EXPORT_FILE]中的bcp [TABLE_TO_EXPORT]“-f”[FORMAT_FILE]“-S [SERVER] -E -T -a 65535
我把输出从导出/导入操作redirect到一个日志文件(通过追加“> mylogfile.log”和命令的结尾) – 这有助于导出大量数据。
这里没有bcp的方法:
-
将模式和数据导出到文件中
- 使用ssms向导数据库>>任务>>生成脚本… >>select表格>>select数据库模型和模式
- 保存SQL文件(可以是巨大的)
- 在另一台服务器上传输SQL文件
-
分割几个文件中的数据
- 使用像textfilesplitter这样的程序将文件拆分成较小的文件,并将其拆分为10000行文件(因此每个文件不会太大)
- 把所有的文件放在同一个文件夹中,没有别的
-
导入第二个服务器中的数据
- 在同一个文件夹中创build一个名为execFiles.bat的.bat文件
- 您可能需要检查表模式以禁用第一个文件中的标识,您可以在导入完成后添加该标识。
-
这将执行文件夹中的所有文件与服务器和数据库,-f定义应使用Unicode文本编码来处理重音:
for %%G in (*.sql) do sqlcmd /S ServerName /d DatabaseName -E -i"%%G" -f 65001 pause