sql脚本太大直接在数据库中执行会提示内存不足,我们看生成的脚本文件会发现每隔100条会有一个GO来分隔,这就好说了
在我将数据库的结构连同数据生成一个脚本文件db.sql 后,想在另外的电脑上恢复数据库,以便编程测试。然而,在我试图在SQL Server manager Studio上执行该脚本时,对方却告诉我,文件太大,无法打开。经过一番查找,发现用以下语句就可以通过命令行,可以很轻松的解决问题。注意,如果脚本太大,可以关闭stderr消息,以加快执行速度。
OSQL -U sa -P -S (local)\SQLExpress -d trw -r -i db.sql
其中,SQLExpress是我的本地数据库服务器,TRW是数据库名称,db.sql 是我的脚本文件。osql工具的命令参数如下:
osql [-U 登录 ID] [-P 密码]
[-S 服务器] [-H 主机名] [-E 可信连接]
[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
[-h 标题] [-s 列分隔符] [-w 列宽]
[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称]
[-q "命令行查询"] [-Q "命令行查询" 并退出]
[-n 删除编号方式] [-m 错误级别]
[-r 发送到 stderr 的消息] [-V 严重级别]
[-i 输入文件] [-o 输出文件]
[-p 打印统计信息] [-b 出错时中止批处理]
[-X[1] 禁用命令,[退出的同时显示警告]]
[-O 使用旧 ISQL 行为禁用下列项]
批处理
自动调整控制台宽度
宽消息
默认错误级别为 -1 和 1
使用命令行 CMD 执行,先定位到脚本文件存放路径