Mam bazę danych o nazwie foo i bazę danych o nazwie bar. Mam tabelę w foo o nazwie tblFoobar, którą chcę przenieść (dane i wszystkie) do paska bazy danych z bazy danych foo. Jaka jest do tego instrukcja SQL?
sql
sql-server
copy
migrate
database-table
RyanKeeter
źródło
źródło
Zadanie „Import danych” programu SQL Server Management Studio (kliknij prawym przyciskiem myszy nazwę DB, a następnie zadania) wykona większość z Ciebie. Uruchom go z bazy danych, do której chcesz skopiować dane.
Jeśli tabele nie istnieją, utworzy je dla Ciebie, ale prawdopodobnie będziesz musiał odtworzyć wszelkie indeksy i tym podobne. Jeśli tabele istnieją, domyślnie dołączą nowe dane, ale można je dostosować (edytować odwzorowania), aby usunąć wszystkie istniejące dane.
Używam tego cały czas i działa całkiem dobrze.
źródło
WHERE
warunek za pomocą zadania Importuj dane? Nie mogłem znaleźć sposobu, aby to zrobić.identity
iforeign key
odniesienia są usuwane w docelowej bazie danych, każde rozwiązanie?To powinno działać:
To będzie nie skopiować constaints, domyślnie lub indeksów. Utworzona tabela nie będzie miała indeksu klastrowego.
Alternatywnie możesz:
Jeśli tabela docelowa istnieje i jest pusta.
źródło
INSERT INTO...
) działała dla mnie w Oracle.Jeśli jest tylko jeden stół, wszystko, co musisz zrobić, to
Jedną rzeczą, którą musisz wziąć pod uwagę, są inne aktualizacje, takie jak migracja innych obiektów w przyszłości. Pamiętaj, że tabele źródłowa i docelowa nie mają tej samej nazwy. Oznacza to, że będziesz musiał również wprowadzić zmiany, jeśli zależne obiekty, takie jak widoki, procedury składowane i inne.
Z jednym lub kilkoma obiektami możesz przejść ręcznie bez żadnych problemów. Jednak gdy jest więcej niż kilka aktualizacji, narzędzia do porównywania innych firm są bardzo przydatne. Obecnie używam ApexSQL Diff do migracji schematów, ale nie można pomylić się z żadnym innym narzędziem.
źródło
Skrypt
create table
w studio zarządzania, uruchom ten skrypt na pasku, aby utworzyć tabelę. (Tabela prawym przyciskiem myszy w eksploratorze obiektów, tabela skryptów jako, utwórz do ...)INSERT bar.[schema].table SELECT * FROM foo.[schema].table
źródło
SET IDENTITY_INSERT TblName ON
takim przypadku musisz także zrobić .Możesz także użyć Kreatora generowania skryptów SQL Server, aby pomóc w tworzeniu skryptów SQL, które mogą wykonywać następujące czynności:
Dobrym przykładem Workflow dla SQL Server 2008 ze zrzutami ekranowymi pokazanych tutaj .
źródło
Możesz przejść w ten sposób: (ogólny przykład)
Również jeśli chcesz wygenerować nazwy kolumn, aby wstawić klauzulę wstawiania, użyj:
Skopiuj wynik i wklej do okna zapytania, aby przedstawić nazwy kolumn tabeli, a nawet to wykluczy również kolumnę tożsamości:
Pamiętaj, że skrypt do kopiowania wierszy będzie działał, jeśli bazy danych należą do tej samej lokalizacji.
Możesz tego spróbować.
Nazwa serwera jest opcjonalna, jeśli obie bazy danych znajdują się na tym samym serwerze.
źródło
Jeśli istnieje tabela i chcemy skopiować tylko dane, możemy wypróbować to zapytanie.
wstaw do Destination_Existing_Tbl wybierz col1, col2 FROM Source_Tbl
źródło
Kopiuj dane
źródło