我正在尝试使用 SMO 传输类为数据库中的所有表编写数据脚本。我正在尝试创建一批 INSERT 语句。ScriptingOptions 属性 BatchSize 似乎在这里被忽略了,因为我的最终脚本在每个 INSERT 语句之后都包含批处理分隔符“GO”。下面是我正在使用的代码片段:
so.BatchSize = 500;
so.ScriptBatchTerminator = true;
so.NoCommandTerminator = false;
so.ScriptData = true;
so.SchemaQualify = true;
//and few other options all set to false
...
Transfer tData = new Transfer(sourceDb);
tData.Options = so;
...
tData.CopySchema = true;
tData.CopyData = true;
...
tData.EnumScriptTransfer();
输出脚本是这样的:
INSERT INTO...
GO
INSERT INTO...
GO
INSERT INTO...
GO
...
但预期的输出是
INSERT INTO...
INSERT INTO...
INSERT INTO...
//497 more INSERTS
GO
...