"Incorrect syntax near 'GO'" 插入值时
"Incorrect syntax near 'GO'" when inserting values
我遇到了上面的错误。
我使用这个代码:
//split the script on "GO" commands
string[] splitter = new string[] { "\r\nGO\r\n" };
string[] commandTexts = data.Split(splitter,
StringSplitOptions.RemoveEmptyEntries);
foreach (string commandText in commandTexts)
{
SqlCommand cmdScript = new SqlCommand(commandText, conn);
cmdScript.ExecuteNonQuery();
}
我用 SSMS 编写了我的表内容的脚本,所以我得到了一个包含大量 'INSERT INTO' 语句和它们之间的一些 'GO' 语句的文件。
最后一个 'GO' 语句不在文件末尾 - 在最后一个语句之后有一些 'INSERT INTO' 行。这在 SSMS 中执行时效果很好,但在 C# 中使用上述构造时效果不佳。
我放入一个计数器来计算循环中 'commandText' 的数量。我有 3107。在文件末尾添加 'GO' 后,我的计数器显示 3108,但仍然出现错误。在这两种情况下,所有数据都被完全插入到我的表中,所以错误发生在最后。
知道这可能是什么吗?
如果使用字符串生成器会更容易 instead.you 可以使用字符串 builder.append class 添加新的字符串行
如果解析器说'syntax error before GO',则表示您已将 GO 发送到服务器。一定是你的分离器没有正确分离。在 GO 之后可能类似于 space,使其与 \r\nGO\r\n
不完全匹配。
我遇到了上面的错误。 我使用这个代码:
//split the script on "GO" commands
string[] splitter = new string[] { "\r\nGO\r\n" };
string[] commandTexts = data.Split(splitter,
StringSplitOptions.RemoveEmptyEntries);
foreach (string commandText in commandTexts)
{
SqlCommand cmdScript = new SqlCommand(commandText, conn);
cmdScript.ExecuteNonQuery();
}
我用 SSMS 编写了我的表内容的脚本,所以我得到了一个包含大量 'INSERT INTO' 语句和它们之间的一些 'GO' 语句的文件。
最后一个 'GO' 语句不在文件末尾 - 在最后一个语句之后有一些 'INSERT INTO' 行。这在 SSMS 中执行时效果很好,但在 C# 中使用上述构造时效果不佳。
我放入一个计数器来计算循环中 'commandText' 的数量。我有 3107。在文件末尾添加 'GO' 后,我的计数器显示 3108,但仍然出现错误。在这两种情况下,所有数据都被完全插入到我的表中,所以错误发生在最后。 知道这可能是什么吗?
如果使用字符串生成器会更容易 instead.you 可以使用字符串 builder.append class 添加新的字符串行
如果解析器说'syntax error before GO',则表示您已将 GO 发送到服务器。一定是你的分离器没有正确分离。在 GO 之后可能类似于 space,使其与 \r\nGO\r\n
不完全匹配。