Witam
Piszę program który ma za zadanie zsynchronizować lub przenieść dane z jednej bazy danych do drugiej. Program najpierw wylistuje tabele jakie są w bazie danych użytkownik wybiera które tabele mają być synchronizowane i start. Założenia są takie by informacje były przekazywane z bazy do bazy tak by nic na dysku nie zapisywać.
Teraz konkretne pytanie techniczne. Jak taką operację najlepiej wykonać.
1 Pomysł
Najpierw wykonać TRUNCATE TABLE a następnie rekord po rekordzie wpychać na nowo informacje.
2 Pomysł
Tak jak pomysł 1 tylko ubrać to BEGIN TRANSACTION SET XACT_ABORT ON i na końcu COMMIT TRANSACTION. Tylko moje obawy są o miejsce w bazie TEMPDB. Czy baza nie spuchnie tak że miejsca na dysku nie braknie. Jeżeli będziemy przenosić np 2GB danych to spokojnie gorzej jak zaczniemy przenosić tabele w których znajdują się dane wielkości 100GB i większe bo z takimi też mam odczynienia. Użytkownik chce trzymać dane od początku świata do celów statystycznych itp.
3 Pomysł
Ten pomysł jest bardzo świeży i najmniej o niem wiem pod względem technicznym. Chodzi o wywołanie wewnętrznych modułów takich jak BCP (bulk copy). Jeszcze nie wiem czy da się tą metodą kopiować dane z serwera na serwer czy tylko do pliku.
Czy te pomysły są dobre. Jakie niosą zagrożenia w razie jakiegoś crash'a i czy w ogóle mają prawo bytu czy są jakieś lepsze sposoby rozwiązania tego problemu.