首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SMO迁移到SMO( Server 2012)

从SMO迁移到SMO( Server 2012)
EN

Stack Overflow用户
提问于 2014-12-10 20:16:31
回答 1查看 1.2K关注 0票数 0

我正在将SQL逻辑迁移到SQL逻辑,并且我不知道如何实现一些属性的相同功能。这是DMO:

代码语言:javascript
复制
    oBCP = New SQLDMO.BulkCopy2
    With oBCP
        .ImportRowsPerBatch = ImportRowsPerBatch                 
        .DataFilePath = Path.Combine(gtSysTempDir, "file.dat")     
        .LogFilePath = Path.Combine(gtSysTempDir, "file.log")      
        .ErrorFilePath = Path.Combine(gtSysTempDir, "file.err")     
        .MaximumErrorsBeforeAbort = 1                   
        .DataFileType = SQLDMO.SQLDMO_DATAFILE_TYPE.SQLDMODataFile_TabDelimitedChar
    End With

到目前为止,这就是小额信贷管理组织:

代码语言:javascript
复制
    trans = New Transfer
    With trans
        .ImportRowsPerBatch = ImportRowsPerBatch                 
        .TargetDatabaseFilePath = Path.Combine(gtSysTempDir, "file.dat")     
        .TargetLogFilePath = Path.Combine(gtSysTempDir, "file.log")       
        '.ErrorFilePath = Path.Combine(gtSysTempDir, "file.err")     
        .MaximumErrorsBeforeAbort = 1                   
        .DataFileType = SQLDMO.SQLDMO_DATAFILE_TYPE.SQLDMODataFile_TabDelimitedChar
    End With

如果存在,ImportRowsPerBatch (BatchSize?)、ErrorFilePath、MaxErrorsBeforeAbort和DataFileType的等价物是什么?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-12-18 12:27:41

尽管存在MSDN怎么说Transfer实际上并不等同于BulkCopy2;它用于脚本/复制整个数据库,而BulkCopy2只用于批量复制数据。这些设置根本不对应--特别是,Transfer.TargetDatabaseFilePath应该是数据库文件的位置,而BulkCopy2.DataFilePath是导入/导出数据的文件的位置。一些批量复制场景是由Transfer处理的,但大多数不是。

如果没有实际复制整个数据库,则有几个替代方案,其中没有一个使用SMO (SMO没有大容量复制的类):

  • 直接调用散装插入语句,这可能是BulkCopy2在后台所做的事情(但我还没有验证这一点);
  • 使用SqlBulkCopy类,这将需要一些额外的代码(但它也提供了更大的灵活性,因为要导入的数据可以来自任何源);
  • 构建命令行并调用bcp

其中,BULK INSERT是最直接的。

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

https://stackoverflow.com/questions/27410025

复制
相关文章

相似问题

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