我正在使用SQLCMD来运行一个270 MB的.sql文件。脚本文件(.sql)是使用Red Gate SQL Data Compare同步向导生成的。由于内存不足,我无法从SSMS运行它。我登录到服务器并转到命令提示符,它打开命令提示符
C:\用户\ USER1>
然后我输入
> C:\Users\USER1>SQLCMD -U sa -P PWD -d DATA_FEAT -i F:\SYNC\DATA-DATA_FEAT-20140709.sql -o F:\SYNC\DATA-DATA_FEAT-20140709result.txt
但是我得到了
Sqlcmd:错误:脚本错误。
我可以使用红门同步它而不会出错。红门运行相同的.sql文件
任何帮助
由于
答案 0 :(得分:9)
我遇到了很多插入的大脚本。解决方案was over in this other answer:在文件中定期插入GO
,以便在一个大型事务中不会构建所有内容。答案甚至得到了...... a RedGate forum thread的信息。
由于我使用Linux并且我的文件是每行一个语句,因此我很容易使用this answer中概述的sed
来添加{{1}每隔几行,例如:
$ sed ': loop; n; n; n; n; n; n; n; n; n; a GO n; b loop' < bigfile.sql > bigfile2.sql
每10行插入一次GO(GO
脚本中n
出现的次数),这可能是过度的。