首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScriptingOptions.BatchSize不起作用

ScriptingOptions.BatchSize不起作用
EN

Stack Overflow用户
提问于 2013-07-16 15:05:58
回答 1查看 549关注 0票数 2

我正在尝试使用SMO传输类为数据库中的所有表编写数据脚本。我正在尝试创建INSERT语句的批处理。这里似乎忽略了ScriptingOptions属性BatchSize,因为我的最后一个脚本在每个INSERT语句后都包含批处理分隔符"GO“。下面是我正在使用的代码片段:

代码语言:javascript
复制
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();

输出脚本如下所示:

代码语言:javascript
复制
INSERT INTO...
GO
INSERT INTO...
GO
INSERT INTO...
GO
...

但是预期的输出是

代码语言:javascript
复制
INSERT INTO...
INSERT INTO...
INSERT INTO...
//497 more INSERTS
GO
...
EN

回答 1

Stack Overflow用户

发布于 2013-07-31 02:07:47

SqlBulkCopy类还有一个BatchSize和BulkCopyTimeout。我的猜测是,由于您将输出为纯文本,而不是运行TransferData(),所以脚本编写器正在做它自己的事情。在传输对象上运行TransferData(),使用活动监视器监视进程时,您可以看到它正在执行一次批量插入,而不是许多小插入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17670115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档