2011-11-27 14 views
16

Właśnie utworzyłem pustą bazę danych na moim komputerze. Teraz chcę skopiować tabelę z naszej bazy danych serwera do tej lokalnej bazy danych.Skopiuj tabelę z jednej bazy danych do innej

Jakie komendy sql muszę uruchomić, aby to zrobić? Chcę utworzyć nową tabelę, skopiować dane ze starej tabeli i wstawić ją do nowej tabeli.

+1

Można by utworzyć skrypt SQL INSERT. Zobacz http://stackoverflow.com/questions/7515110/create-sql-insert-script-with-values-gathered-from-table – mhenry1384

Odpowiedz

24

Create a linked server do serwera źródłowego. Najprostszym sposobem jest kliknięcie prawym przyciskiem myszy "Połączone serwery" w Management Studio; jest pod Zarządzanie -> Obiekty serwera.

Następnie można skopiować tabelę przy użyciu nazwy 4-częściowy, server.database.schema.table:

select * 
into DbName.dbo.NewTable 
from LinkedServer.DbName.dbo.OldTable 

Będzie to zarówno utworzyć nową tabelę z tej samej strukturze jak oryginalne i skopiować dane skończona.

+2

+1 tylko odpowiedź biorąc pod uwagę, że te bazy danych znajdują się na ** różnych ** serwerach! –

+0

Nie działa, jeśli pracujesz z SQL Server 2000 i 2012+ https://connect.microsoft.com/SQLServer/feedback/details/731869/using-sqlncli10-to-create-a-linked-server-to- sql-server-2000-causes-a-fault – sojim2

+0

Rozwiązanie dla SQL Server 2000 i 2012+ tutaj (odpowiedź z najwyższym wynikiem głosowania, a nie zaznaczona odpowiedź): http://stackoverflow.com/questions/187770/copy-tables- from-one-database-to-another-in-sql-server – sojim2

6

SELECT ... INTO:

select * into <destination table> from <source table> 
6

Zakładając, że są one w tym samym serwerze, spróbuj tego:

SELECT * 
INTO SecondDB.TableName 
FROM FirstDatabase.TableName 

Spowoduje to utworzenie nowej tabeli i po prostu skopiować dane z FirstDatabase.TableName do SecondDB.TableName i nie będą tworzyć klucze obce lub indeksów.

1

Najszybszym sposobem jest użycie narzędzia, takiego jak RazorSQL lub Toad, aby to zrobić.

2

Zakładając, że chcesz mieć różne nazwy dla tabel.

Jeśli używasz PHPmyadmin, możesz użyć ich opcji SQL w menu. Następnie wystarczy skopiować kod SQL z pierwszej tabeli i wkleić go do nowej tabeli.

To zadziałało dla mnie, gdy przeprowadzałem się z hosta lokalnego do hosta. Mam nadzieję, że to działa dla Ciebie!

+0

W przypadku bardzo dużych tabel, których kod SQL byłby trudny do skopiowania i wklejenia, menu ** Import ** i ** Eksport ** menu PHPmyadmin może być łatwo użyte jako dobrze. – tmnol

3
INSERT INTO ProductPurchaseOrderItems_bkp 
     (
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
    ) 
SELECT 
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
FROM ProductPurchaseOrderItems 
    WHERE OrderId=415 
1

Jeśli potrzebujesz całą strukturę tabeli (nie tylko podstawowy układ danych), należy Task>Script Table As>Create To>New Query Window i uruchomić w swojej nowej bazy danych. Następnie możesz skopiować dane w wolnym czasie.

4

W przypadku ciągłej migracji między dwiema bazami danych istnieje możliwość wstawienia do istniejącej struktury tabeli. Jeśli tak, to:

Użyj następującej składni:

insert into DESTINATION_DB.dbo.destination_table 
select * 
    from SOURCE_DB.dbo.source_table 
[where x ...] 

jeśli migracji wiele stolików (lub tabel z kluczy obcych ograniczeń) Polecam:

  • Generowanie Scripts z Opcja zaawansowana/Typy danych do skryptu: Tylko dane LUB
  • Ośrodek za pomocą narzędzia innej firmy.

Mam nadzieję, że pomoże!

7

Inną metodą, która może być używana do kopiowania tabel ze źródłowej bazy danych do docelowej, jest kreator eksportu i importu programu SQL Server, który jest dostępny w SQL Server Management Studio.

Masz możliwość eksportu ze źródłowej bazy danych lub importu z miejsca docelowego w celu przesłania danych.

Ta metoda umożliwia szybkie skopiowanie tabel ze źródłowej bazy danych do docelowej, jeśli istnieje możliwość kopiowania tabel niezwiązanych z relacjami i zamówieniami tabel.

Podczas korzystania z tej metody indeksy i klucze w tabelach nie będą przesyłane. Jeśli chcesz go skopiować, musisz wygenerować skrypty dla tych obiektów bazy danych.

Jeśli są to klucze obce, łącząc te tabele razem, należy wyeksportować dane we właściwej kolejności, w przeciwnym razie kreator eksportu zakończy się niepowodzeniem.

Zapraszam do zapoznania się więcej na temat tej metody, jak również o kilku więcej metod (w tym generowanie skryptów, SELECT INTO i narzędzi firm trzecich) w tym artykule: https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/

Powiązane problemy