Sto usando SqlBulkCopy
su due SQL Server 2008 con diversi set di colonne (andando a spostare alcuni dati dal server prod
a dev
). Quindi, vuoi saltare alcune colonne non ancora esistenti/non ancora rimosse.Salta alcune colonne in SqlBulkCopy
Come posso farlo? Qualche trucco con ColumnMappings
?
Edit:
devo fare:
DataTable table = new DataTable();
using (var adapter = new SqlDataAdapter(sourceCommand))
{
adapter.Fill(table);
}
table.Columns
.OfType<DataColumn>()
.ForEach(c => bulk.ColumnMappings.Add(
new SqlBulkCopyColumnMapping(c.ColumnName, c.ColumnName)));
bulk.WriteToServer(table)
e ottengo:
Il dato ColumnMapping non corrisponde a nessuna colonna nella origine o di destinazione.
@abtishchev: cool e riutilizzabile. Credo che "stringTarget" e "stringSource" siano nomi di colonne, giusto? – xameeramir
@student: hey, IIRC sono stringhe di connessione rispettivamente ai database di origine e di destinazione. – abatishchev
Fantastico. Avevo bisogno di aggiungere un po 'di codice per gestire correttamente i nomi di schema e database, ma questo è esattamente ciò di cui avevo bisogno. –