SMO 転送クラスを使用して、データベース内のすべてのテーブルのデータをスクリプト化しようとしています。INSERT ステートメントのバッチを作成しようとしています。私の最終的なスクリプトには、各 INSERT ステートメントの後にバッチ区切り文字 "GO" が含まれているため、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
...