Я пытаюсь выполнить запись данных для всех таблиц в базе данных с помощью SMO Transfer Class. Я пытаюсь создать партии инструкций INSERT. Свойство ScriptingOptions BatchSize, похоже, здесь игнорируется, так как мой окончательный скрипт содержит пакетный разделитель «GO» после каждого оператора INSERT. Ниже фрагмент кода я использую:ScriptingOptions.BatchSize не имеет эффекта
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
...
Transfer.BatchSize недоступен, так как я использую сборки 2008 года. –
Я переключился на сборку 2012 года и попытался использовать Transfer.BatchSize. Проблема здесь заключается в том, что он всегда вставляет GO после 100 строк, независимо от значения, указанного для этого свойства. –