Estoy usando SqlBulkCopy
contra dos SQL Server 2008 con diferentes conjuntos de columnas (va a mover algunos datos del servidor prod
al dev
). Así que quiero omitir algunas columnas que aún no existen/aún no se eliminaron.Omitir algunas columnas en SqlBulkCopy
¿Cómo puedo hacer eso? Algún truco con ColumnMappings
?
Editar:
es el siguiente paso:
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)
y sale:
El ColumnMapping dado no coincide con ninguna columna en el origen o destino.
@abtishchev - genial y reutilizable. Creo que 'stringTarget' y 'stringSource' son nombres de columna, ¿verdad? – xameeramir
@student: hey, IIRC estas son cadenas de conexión para las bases de datos de origen y destino, respectivamente. – abatishchev
Fantástico. Necesitaba agregar un poco de código para manejar correctamente los nombres de esquema y base de datos, pero esto es exactamente lo que necesitaba. –