Mam kilkaset (obecnie 466, ale wciąż rosnących) tabel, które muszę skopiować z jednego serwera na drugi.
Nigdy wcześniej nie musiałem tego robić, więc nie jestem pewien, jak do tego podejść. Wszystkie tabele mają ten sam format:Cart<Eight character customer number>
Jest to część większego projektu, w którym łączę wszystkie te Cart<Number>
tabele w jeden Carts
stół, ale to zupełnie inne pytanie.
Czy ktoś ma metodę najlepszych praktyk, której mogę użyć do skopiowania wszystkich tych tabel? Nazwy baz danych na obu serwerach są takie same, jeśli to pomaga. I jak powiedziałem wcześniej, mam sa
konto, dzięki czemu mogę zrobić wszystko, co konieczne, aby uzyskać dane od A do B. Oba serwery również należą do tej samej farmy serwerów.
sql-server
sql-server-2012
ssms
linked-server
410_Gon
źródło
źródło
Odpowiedzi:
Możesz użyć zadania „Eksport danych” programu SQL Server Management Studio. Kliknij prawym przyciskiem myszy bazę danych w SSMS, wybierz Zadania, a następnie „Eksportuj dane”. Uruchomi interaktywnego kreatora, który pozwoli skopiować tabele z jednego serwera na drugi, chociaż będziesz musiał samodzielnie odtworzyć indeksy. Kreator tworzy tymczasowy pakiet SSIS (chociaż można go również zapisać) i jest stosunkowo szybki.
źródło
Oto szybkie i brudne podejście, które wymaga tylko połączonego serwera w każdym kierunku, z wystarczającymi uprawnieniami, kompatybilnością zestawiania i dostępem do danych. Uruchom to na źródłowym serwerze połączonym, aby wygenerować dynamiczny SQL, który zostanie wykonany na docelowym serwerze połączonym.
źródło
Jeśli chcesz, aby skrypt mógł być łatwo ponownie uruchomiony podczas testowania i wprowadzania drobnych zmian, sprawdź moją odpowiedź tutaj:
Importuj dane z jednej bazy danych do innego skryptu
Ta odpowiedź opisuje użycie procedury składowanej SQLCLR, która korzysta z
SqlBulkCopy
klasy w .NET. Korzystanie z tej procedury składowanej można wykonać za pomocą kursora, który zapętla tabele. Umożliwia to łatwą edycję procesu, a także rozliczanie nowych tabel lub łatwe wykluczenie jednej lub więcej tabel za pomocąWHERE
warunku w zapytaniu kursora.źródło
Możesz użyć BCP OUT i BULK INSERT INTO w docelowej bazie danych. Możesz użyć tego skryptu
Możesz także użyć SSIS (import / eksport danych), aby wykonać transfer danych .
źródło