“sql文件插入中字符串'FieldN'错误后的未闭合引号

时间:2015-03-06 21:06:17

标签: sql sql-server

我正在使用来自大sqlcmd -S文件的.sql命令进行插入,该文件同时具有模式和数据值。插入操作开始后,我在中间出现错误

  

消息102,级别15,状态1,服务器My-PC \ SQLEXPRESS,第39行
  字符串FieldN后面的未闭合引号

我无法打开文件(因为它太大而无法打开)并修复了导致错误的行中的引号但是想知道我们是否可以跳过与未闭合引号有关的问题的行?

2 个答案:

答案 0 :(得分:1)

这可能是一些事情。如果无法看到代码,我建议从两个地方开始:

  1. 您文件中的SQL格式错误,需要进行修改以在INSERT中的某处包含一个右引号。行号并不总是具体错误,但是从它给你的行号开始或接近它。
  2. 您的一个或多个数据值包含需要转义的撇号。再次,从它给你的行号附近开始。
  3. 在任何一种情况下,您都需要修改\script.sql文件以解决此问题。

    修改

    最终,您需要编辑此脚本,或创建一个新脚本。如果您决定重新滚动此脚本,则需要尝试添加文本限定符。我不确定你的数据集来自哪里,但是在运行之前需要捕获它。

    如果无法重新生成脚本,则必须找到打开它的方法。没有解决这个问题。它隐藏在该脚本中,并且在修复之前不会成功触发。

答案 1 :(得分:0)

sql cmd分段处理sql命令。它适用于流-读取一堆数据,对其进行处理,然后再处理下一堆数据,以此类推,直到文件结束。如果您不指定立即处理的数据量,则仅占用4096个字节,并且一堆sql查询较大-发生错误“字符串后的未引号”。考虑-a参数,例如: sqlcmd -s服务器-a DATATOBEPROCESSEDATONCE -u用户名-p密码-i“ FILEPATH”。 将DATATOBEPROCESSEDATONCE设置为32767。