Temat: Update DataTable
Marcin Pigłowski:
Procedura == procedura składowana - nie
Procedura == metoda (funkcja) w kodzie aplikacji - tak
możesz również w kodzie aplikacji napisać sobie inserta/updatea, i użyć metody ExecuteNonQuery klasy SQLCommend. Takie inserty można budować w pętli, przeglądającej wiersze datatable.
Mam kilka pytań w związku z tematem. Czy jest to najszybsza, dostępna metoda zapisu (pętla + SqlCommand)? Załóżmy, że mój użytkownik zmienia harmonogram spłaty kredytu 100 klientów. Zakładając, że każdy harmonogram ma po 100 rat mam do update’owania (lub insert’owania) 10100 wierszy (100 harmonogramów i 10000 ratHarmonogramu) w dwóch tabelach (Harmonogram i RataHarmonogramu). Oczywiście to może być dużo więcej harmonogramów i dużo więcej rat, o danych dodatkowych w innych tabelach nie wspomnę :). Zatem:
1. Jak najszybciej wpakować taką porcje danych do bazy, zakładając że trzymam je sobie w DataTable,
2. Stosować Procedury Składowe czy zapytania tekstowe (CommandType.StoredProcedure czy CommandType.Text),
3. Chciałbym tu użyć transakcji (SqlTransaction) – czy to spowolni proces zapisu i czy w ogóle tak transakcja nie ma ograniczeń na duże ilości danych?
Czyli innymi słowy jak najszybciej zapisać duża porcję danych, tak żeby użytkownik się nie wściekał :). Mając do dyspozycji SQL Serwer 2000.