'GO'"插入值时

本文关键字:GO quot 插入 | 更新日期: 2023-09-27 18:08:51

我得到上面的错误。我使用以下代码:

  //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,仍然得到错误。在这两种情况下,所有数据都完全插入到我的表中,因此错误发生在最后。知道这是什么吗?

'GO'"插入值时

如果解析器说'语法错误之前GO',这意味着你发送GO到服务器。一定是你的分配器没有正确地分配器。可能是GO后面的空格,使其与'r'nGO'r'n不完全匹配。

你可以试试https://github.com/rusanu/DbUtilSqlCmd

如果使用字符串生成器,会更容易。你可以使用字符串生成器。附加类添加新的字符串