'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后面的空格,使其与'r'nGO'r'n
不完全匹配。
你可以试试https://github.com/rusanu/DbUtilSqlCmd
如果使用字符串生成器,会更容易。你可以使用字符串生成器。附加类添加新的字符串