SQL Server Management Studio 2012 – 导出/从表格导入数据

我有三百多万行的桌子。 我已经尝试从它手动Export data并使用SQL Server Management Studio Export datafunction到Excel,但遇到了几个问题:

  • 当创build.txt文件手动复制和粘贴数据(这是几次,因为如果你从SQL Serverpipe理工作室复制所有行它会抛出内存错误)我无法用任何文本编辑器打开它并复制行;

  • Export data到Excel不起作用,因为Excel不支持如此多的行

最后,通过Export datafunction,我创build了一个.sql文件,但它是1.5 GB,我无法再次在SQL Server Management Studio中打开它。

有没有办法导入Import datafunction,或者其他更聪明的方式来备份我的表的信息,然后再导入它,如果我需要它?

提前致谢。

我不太清楚,如果我理解你的要求(我不知道你是否需要将你的数据导出为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的方法:

  1. 将模式和数据导出到文件中

    • 使用ssms向导数据库>>任务>>生成脚本… >>select表格>>select数据库模型和模式
    • 保存SQL文件(可以是巨大的)
    • 在另一台服务器上传输SQL文件
  2. 分割几个文件中的数据

    • 使用像textfilesplitter这样的程序将文件拆分成较小的文件,并将其拆分为10000行文件(因此每个文件不会太大)
    • 把所有的文件放在同一个文件夹中,没有别的
  3. 导入第二个服务器中的数据

    • 在同一个文件夹中创build一个名为execFiles.bat的.bat文件
    • 您可能需要检查表模式以禁用第一个文件中的标识,您可以在导入完成后添加该标识。
    • 这将执行文件夹中的所有文件与服务器和数据库,-f定义应使用Unicode文本编码来处理重音:

      for %%G in (*.sql) do sqlcmd /S ServerName /d DatabaseName -E -i"%%G" -f 65001 pause