TeraData中是否有SQLBulkCopy的等价物

时间:2015-09-10 06:07:44

标签: teradata sqlbulkcopy

经过一番调查后,我无法从TeraData中的SQLClient中找到正确的SQLBulkCopy替代品。任何机构都可以建议我在C#中使用像TebData的SQLBulkCopy吗?我需要在TD中插入几百万行 需要这个来比较一组从外部数据库检索并转储到TD中的行,并与TeraData中已有的数据进行比较。

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

我找不到相应的东西,但这对我来说是可以接受的。此外,我怀疑可以调整UpdateBatchSize以匹配您的特定数据以提高速度。

如上所述,您的源表和目标表必须具有相同的列(例如BulkCopy,但不一定是相同的顺序)。

TdConnection tdCon = new TdConnection(tdConString);
SqlConnection sqlCon1 = new SqlConnection(serverOneConString);

// Get schema for destination table
var query = "SELECT * FROM [Destination_Table] where 0 = 1";
using (TdDataAdapter insertAdapter = new TdDataAdapter(query, tdCon))
{
     DataSet ds = new DataSet();
     insertAdapter.Fill(ds);

     // Load data from source table
     using (SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT * FROM [Source_Table]", sqlCon1)) {
         dataAdapter.SelectCommand.CommandTimeout = 240;
         dataAdapter.Fill(dt);
     }                

     // Move data from source to destination, matching column names
     foreach (DataRow row in dt.Rows) {
         var newRow = ds.Tables[0].NewRow();
         foreach (DataColumn column in dt.Columns) {
             newRow[column.ColumnName] = row[column.ColumnName];
         }
         ds.Tables[0].Rows.Add(newRow);
     }
     TdCommandBuilder builder = new TdCommandBuilder(insertAdapter);
     insertAdapter.UpdateBatchSize = 250;
     insertAdapter.Update(ds);
}