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 脚本错误的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server Express 数据库实例连接错误

subprocess.call未按预期运行

是否可以在数据库项目中使 SQLCMD 模式“粘滞”

SQLCMD命令,如何将输出保存到日志文件中

使用 SQLCMD 执行发布脚本不返回

sqlcmd - 连接到 SQLEXPRESS 的本地实例