Używam SqlBulkCopy
przeciwko dwóm SQL Server 2008 z różnymi zestawami kolumn (przeniesienie niektórych danych z serwera prod
do dev
). Więc chcesz pominąć niektóre kolumny, które jeszcze nie istniały/jeszcze nie zostały usunięte.Pomiń niektóre kolumny w SqlBulkCopy
Jak mogę to zrobić? Trochę sztuczki z ColumnMappings
?
Edit:
I dalej:
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)
a otrzymasz:
Podana ColumnMapping nie zgadza się z dowolnej kolumny w źródle lub przeznaczenia.
@abtishchev - fajne i wielokrotnego użytku. Wierzę, że "stringTarget" i "stringSource" są nazwami kolumn, prawda? – xameeramir
@student: hej, IIRC są to ciągi połączenia odpowiednio z bazą źródłową i docelową. – abatishchev
Fantastyczne. Musiałem dodać trochę kodu, aby poprawnie obsługiwać nazwy schematów i baz danych, ale jest to dokładnie to, czego potrzebowałem. –