Sqkbulkcopy sostituisce lo schema della tabella?

c# sqlbulkcopy

Domanda

Stavo inserendo dati bulk dal codice C # usando sqlbulkcopy. C'erano 15000 record in temp_upload table.Ora in qualche modo il datatable nel metodo WriteToServer () aveva solo una colonna e 37 righe.

Dopo averlo eseguito, ho trovato che la tabella aveva appena 37 record. Inizialmente aveva 152 colonne ma dopo questo rimanevano solo 32 colonne.

Quale potrebbe essere la ragione di questo?

Codice C # per questo

public static void BulkInsert(SqlConnection connection,DataTable DtRecord,string   TableName)
    {

        if (DtRecord == null) throw new ArgumentNullException("dataTable");
        // Create & open a SqlConnection, and dispose of it after we are done

            connection.Open();
            SqlBulkCopy bulkCopy = new SqlBulkCopy(connection);
            bulkCopy.DestinationTableName = TableName;
            for (int recordLoop = 0; recordLoop < DtRecord.Columns.Count; recordLoop++)
            {
                bulkCopy.ColumnMappings.Add(DtRecord.Columns[recordLoop].ColumnName, DtRecord.Columns[recordLoop].ColumnName);
            }

            bulkCopy.WriteToServer(DtRecord);
            bulkCopy.Close();
            connection.Close();

    }

Risposta popolare

Il codice di esempio fornito in questa pagina MSDN ha script che creano tabelle con i campi appropriati prima di eseguire l'operazione di copia, quindi dubito che SqlBulkCopy cambi lo schema. Inoltre, SQLBulkCopy utilizza i mapping di colonne, che sarebbero incoerenti con la modifica dello schema delle tabelle di destinazione, poiché le mappature non sarebbero necessarie per farlo.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow