sql脚本过大,无法打开的解决方法
从外网把数据库中的表结构以及数据用”导出脚本“的方式导出来(1.628G的样子),但是在本机执行sql脚本的时候,直接就是out of memory。
之前执行60M的脚本没出过这种问题,直接双击打开.sql脚本文件,然后执行就完了。现在主要是这文件太大了,就报错了,后面不停的google,终于找到答案了,使用sqlcmd命令,可完成这一工作。
具体操作如下:
step1: 在查询分析器中执行下面的sql语句
select @@servername ;获得数据库服务器名称。
step2:通过运行指令执行脚本
    
sqlcmd -S SQLExpress -U sa -P -d trw -r -i db.sql
其中,SQLExpress是我的本地数据库服务器,TRW是数据库名称,db.sql 是我的脚本文件。
sqlcmd的命令参数如下:
 1   
 [-U 登录 ID]             
[-P 密码]
 2 [-S 服务器]                [-H 主机名]           [-E 可信连接]
  [-S 服务器]                [-H 主机名]           [-E 可信连接]
 3 [-d 使用数据库名称]  [-l 登录超时值]      [-t 查询超时值]
  [-d 使用数据库名称]  [-l 登录超时值]      [-t 查询超时值]
 4 [-h 标题]                    
[-s 列分隔符]         [-w 列宽]
  [-h 标题]                    
[-s 列分隔符]         [-w 列宽]
 5 [-a 数据包大小]         
[-e 回显输入]         [-I 允许带引号的标识符]
  [-a 数据包大小]         
[-e 回显输入]         [-I 允许带引号的标识符]
 6 [-L 列出服务器]         [-c 命令结束]         [-D ODBC DSN 名称]
  [-L 列出服务器]         [-c 命令结束]         [-D ODBC DSN 名称]
 7 [-q "命令行查询"]       [-Q "命令行查询" 并退出]
  [-q "命令行查询"]       [-Q "命令行查询" 并退出]
 8 [-n 删除编号方式]     [-m 错误级别]
  [-n 删除编号方式]     [-m 错误级别]
 9 [-r 发送到 stderr 的消息]  [-V 严重级别]
  [-r 发送到 stderr 的消息]  [-V 严重级别]
10 [-i 输入文件]            [-o 输出文件]
  [-i 输入文件]            [-o 输出文件]
11 [-p 打印统计信息]    [-b 出错时中止批处理]
  [-p 打印统计信息]    [-b 出错时中止批处理]
12 [-X[1] 禁用命令,[退出的同时显示警告]]
  [-X[1] 禁用命令,[退出的同时显示警告]]
13 [-O 使用旧 ISQL 行为禁用下列项]
  [-O 使用旧 ISQL 行为禁用下列项]
14 <EOF> 批处理
      <EOF> 批处理
15 自动调整控制台宽度
      自动调整控制台宽度
16 宽消息
      宽消息
17 默认错误级别为 -1 和 1
      默认错误级别为 -1 和 1
注意,如果脚本太大,可以关闭stderr消息,以加快执行速度。
如果出现”sqlcmd SQL 网络接口: 定位指定的 Server/Instance 时出错 [xFFFFFFFF]. “错误,就请检查数据库服务器名称是否正确。
