爱问知识人 爱问教育 医院库

批处理载入数据如何操作呢?

首页

批处理载入数据如何操作呢?

批处理载入数据如何操作呢?

提交回答

全部答案

    2018-04-07 07:22:06
  •   若有大量的数据记录需要添加到数据库内,例如从主机系统或是 NCR Teradata、Oracle 等数据库系统下载大量数据记录,我们想要将它们快速添加到 SQL Server 2000中,可以有的选择是调用 T-SQL 的 Bulk Insert 语法、通过 Linked Server 执行 SELECT INTO 语法或是执行 bcp。
      exe 工具程序,以及通过 DTS 的 Bulk Insert Task 或启动 Transform Data Task 的快速装载(Use Fast Load)设置。但若要通过自行编写的程序完成批次装载,只能以 C/C++ 调用 OLE DB 或 ODBC 的 Bulk API,无法通过 ADO。
      NET 或 ADO 等对象来执行。ADO。NET 2。0 的 SqlClient 提供了一个新的类称为 SqlBulkCopy,它让 DataSet 内大量的数据或是 DataReader 通过数据流(Stream)直接读取大量的记录,可以快速将这些记录添加到目的数据库的数据表中。
      但要注意的是它并非如我们一般用的 bcp。exe 工具程序,可以从某个符号分隔文件读取大量数据,选择性地搭配格式文件(Format File)将记录装载到数据库中,或是将数据库内的数据导出成为一个文件。但由于 DataSet 能集成 XML 数据,因此依然可以采用 SqlBulkCopy 类型,轻松地通过 DataSet 将 XML 文件数据大量转入到数据库。
      在此就以一个简单的范例来示范该类的使用方式,我们所设计的范例程序画面如图12-5 所示:图12-5 从不同的数据库来源或是 XML 文件大量装载记录到目的数据库在范例中,你可以将来自不同数据源的记录大量装载到目的数据表,程序代码如列表12-5:程序代码列表12- 5 通过 SqlBulkCopy 对象实例将 DataTable 的内容大量批次更新到数据表'连接到目的端服务器Dim destConn As New SqlConnection( _"SERVER=localhost;DATABASE=AWProductsData;Integrated Security=TRUE")destConn。
      Open()'计算目的端数据表已经存在的记录数目Dim verifyCmd As New SqlCommand("SELECT COUNT(*) FROM dbo。Products", destConn)Dim initialCount As Integer = CInt(verifyCmd。
      ExecuteScalar())…If CheckBox1。Checked Then'************** ADO。NET 2。0 新增的批次装载记录SqlBulkCopy 类Using bcp As New SqlBulkCopy(destConn)bcp。
      BulkCopyTimeout = 300bcp。DestinationTableName = "dbo。Products"'范例中故意让来源端与目的端的数据字段名称不同,因此需要进行字段对应的设置'若字段名称相同则以下的程序代码可以省略'bcp。
      ColumnMappings。Add("ProductID", "ProductID")'bcp。ColumnMappings。Add("Name", "Name")'bcp。ColumnMappings。Add("ListPrice", "ListPrice")bcp。
      WriteToServer(ds。Tables("Products"))End UsingElseDim adp As New SqlDataAdapter("SELECT * FROM dbo。Products", destConn)Dim bld As New SqlCommandBuilder(adp)'ADO。
      NET 1。1 只提供逐条数据添加adp。Update(ds。Tables(0))End If…。

    双***

    2018-04-07 07:22:06

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):