SQLCMD 脚本错误
Posted
技术标签:
【中文标题】SQLCMD 脚本错误【英文标题】:SQLCMD scripting error 【发布时间】:2014-07-10 00:31:41 【问题描述】:我正在使用 SQLCMD 运行 270 MB 的 .sql 文件。脚本文件 (.sql) 是使用 Red Gate SQL 数据比较同步向导生成的。由于内存不足,我无法从 SSMS 运行它。我登录到服务器并转到命令提示符,它会打开命令提示符
C:\Users\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:错误:脚本错误。
我可以使用 Red Gate 同步它而不会出错。 Red Gate 运行相同的 .sql 文件
任何帮助
谢谢
【问题讨论】:
我怀疑文件大小有问题。参考this问题? 【参考方案1】:我用一个大脚本做了很多插入就遇到了这个问题。解决方案was over in this other answer:定期在文件中插入GO
,这样就不会在一次大规模事务中建立所有内容。这个答案甚至得到了来自...a RedGate forum thread的信息。
由于我使用的是 Linux 并且我的文件是每行一个语句,因此我很容易使用 sed
中所述的 this answer 每隔几行添加 GO
,例如:
$ sed ': 循环; n; n; n; n; n; n; n; n; n;去
n; b 循环' bigfile2.sql
这每 10 行插入一个 GO(n
出现在 sed
脚本中的次数),这可能是矫枉过正。
【讨论】:
SQL Server 现在老了,很不幸,很糟糕——我们不得不求助于这个 很好的答案,谢谢!对于 Windows 用户:添加 GO 语句的一种简单方法是使用 Notepad++ 的宏功能。 - 单击录制按钮 - 键入以下键:[PgDwn]、[Home]、[Enter]、[Up-key],键入 GO - 单击停止按钮 - 单击“多次运行宏”按钮 - 选择“运行”直到文件结尾'并单击运行 - 删除文件末尾可能的额外 GO 和空行 - 保存 @nozem 如果您的文件超过 3 个演出,则不会:-(以上是关于SQLCMD 脚本错误的主要内容,如果未能解决你的问题,请参考以下文章