sql >> データベース >  >> RDS >> Sqlserver

行ごとではなく、DataTable全体を一度にデータベースに挿入しますか?

    SqlBulkCopyはこれを行う簡単な方法であり、SQLServerでストアドプロシージャを作成する必要がないことを発見しました。

    これが私がそれをどのように実装したかの例です:

    // take note of SqlBulkCopyOptions.KeepIdentity , you may or may not want to use this for your situation.  
    
    using (var bulkCopy = new SqlBulkCopy(_connection.ConnectionString, SqlBulkCopyOptions.KeepIdentity))
    {
          // my DataTable column names match my SQL Column names, so I simply made this loop. However if your column names don't match, just pass in which datatable name matches the SQL column name in Column Mappings
          foreach (DataColumn col in table.Columns)
          {
              bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
          }
    
          bulkCopy.BulkCopyTimeout = 600;
          bulkCopy.DestinationTableName = destinationTableName;
          bulkCopy.WriteToServer(table);
    }
    


    1. SQL分割コンマ区切り行

    2. SQLウィンドウ関数を使用した基本的なデータ分析を学ぶ

    3. Oracle SQL Developerでテーブルにコメントを追加する方法は?

    4. ASYNC NETWORK IO待機タイプをどうするか?