Utwórz kopię zapasową pojedynczej tabeli z danymi z bazy danych w SQL Server 2008


94

Chcę uzyskać kopię zapasową pojedynczej tabeli z danymi z bazy danych w programie SQL Server przy użyciu skryptu.

Jak mogę to zrobić?


Kreator importu / eksportu SQL. Kliknij prawym przyciskiem myszy swoją bazę danych w SMSS / Wybierz eksport pozycji
realnumber3012

1
Chcę to zrobić ze skryptem
EBS

4
proszę przyjąć odpowiedź
MGOwen

Odpowiedzi:


33

Istnieje wiele sposobów na wycofanie się ze stołu.

  1. BCP (PROGRAM BULK COPY)
  2. Wygeneruj skrypt tabeli z danymi
  3. Utwórz kopię tabeli za pomocą polecenia SELECT INTO, przykład tutaj
  4. ZAPISZ dane tabeli bezpośrednio w pliku prostym
  5. Eksportuj dane za pomocą SSIS do dowolnego miejsca docelowego

10
Chociaż ten kod może odpowiedzieć na pytanie, dostarczając dodatkowego kontekstu dotyczącego tego, dlaczego i / lub jak odpowiada na pytanie, znacznie poprawiłoby jego długoterminową wartość. Proszę edytować swoje odpowiedzi, aby dodać trochę wyjaśnień.
CodeMouse92

Jeśli jest to codzienna kopia zapasowa, możemy użyć replikacji do replikacji tabeli, którą chcesz zarchiwizować. Następnie wykonaj kopię zapasową bazy danych subskrybentów.
DBALUKE HUANG

@ CodeMouse92 Zgoda. Głosowałem w dół, ponieważ odpowiedź jest krótka i brakuje jej wyjaśnienia.
Kanion Kolob

147
select * into mytable_backup from mytable

Tworzy kopię tabeli mytable i każdego wiersza o nazwie mytable_backup .


9
Fajnie, że to zapytanie faktycznie utworzy tabelę „mytable_backup”. Nie spodziewałem się tego i utworzyłem nową tabelę do tworzenia kopii zapasowych.
AidanO

Kiedyś to dużo kopii zapasowych danych do innego schematu, a ja zauważyłem, że w pewnych okolicznościach nie są wiersze MISSING ! Cel może być niekompletny. Nie wiem dlaczego. Lepiej sprawdzić liczbę wierszy po takiej kopii zapasowej.
Ben

WAŻNE: tabela kopiowania nie ma indeksów, kluczy ani ograniczeń z oryginalnej tabeli! Tak więc, tak naprawdę nie "kopiuje (całkowicie) tabeli z jej danymi", ale tylko pola i dane.
sdlins

42

W programie SSMS można użyć funkcji „Generuj skrypt dla obiektów bazy danych”.

  1. Kliknij prawym przyciskiem myszy docelową bazę danych
  2. Wybierz Zadania> Generuj skrypty
  3. Wybierz żądaną tabelę lub konkretny obiekt
  4. Kliknij przycisk Zaawansowane
  5. W obszarze Ogólne wybierz wartość w Typy danych do skryptu . Możesz wybrać Tylko dane, Tylko schemat i Schemat i dane . Schemat i dane obejmują zarówno tworzenie tabeli, jak i rzeczywiste dane wygenerowanego skryptu.
  6. Klikaj Dalej, aż kreator zakończy działanie

Ten rozwiązał moje wyzwanie.
Mam nadzieję, że to również ci pomoże.


21

Możesz utworzyć skrypt tabeli wraz z jego danymi, wykonując następujące kroki:

  1. Kliknij prawym przyciskiem myszy bazę danych.
  2. Wybierz Zadania> Generuj skrypty ...
  3. Kliknij Następny.
  4. Kliknij Następny.
  5. W opcjach tabeli / widoku ustaw dane skryptu na Prawda; następnie kliknij dalej.
  6. Zaznacz pole wyboru Tabele i kliknij Dalej.
  7. Wybierz nazwę swojego stołu i kliknij dalej.
  8. Klikaj dalej, aż kreator zakończy pracę.

Więcej informacji można znaleźć na blogu Erica Johnsona.


11

Spróbuj użyć następującego zapytania, które utworzy odpowiednią tabelę w tej samej lub innej bazie danych („DataBase”).

SELECT * INTO DataBase.dbo.BackUpTable FROM SourceDataBase.dbo.SourceTable

1
Czy różni się od poprzedniej odpowiedzi ?
Ofer Zelig


3

Umieść tabelę we własnej grupie plików. Następnie można użyć zwykłego wbudowanego programu SQL Server do tworzenia kopii zapasowych grupy plików, w której w efekcie tworzy kopię zapasową tabeli.

Aby wykonać kopię zapasową grupy plików, zobacz: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-files-and-filegroups-sql-server

Aby utworzyć tabelę w grupie plików innej niż domyślna (jej łatwe), zobacz: Tworzenie tabeli w grupie plików innej niż domyślna


3

To zapytanie zostało uruchomione dla mnie (dla MySQL). mytable_backup musi być obecny przed uruchomieniem tego zapytania.

insert into mytable_backup select * from mytable

4
Pytanie dotyczy SQL Server, a nie MySQL.
Stephen Kennedy

2

Innym podejściem, które możesz zastosować, jeśli chcesz utworzyć kopię zapasową pojedynczej tabeli spośród wielu tabel w bazie danych, jest:

  1. Wygeneruj skrypt dla określonych tabel z bazy danych (kliknij bazę danych prawym przyciskiem myszy, kliknij Zadanie> Generuj skrypty ...

  2. Uruchom skrypt w edytorze zapytań. Musisz zmienić / dodać pierwszą linię (USE DatabaseName) w skrypcie do nowej bazy danych, aby uniknąć błędu „Baza danych już istnieje”.

  3. Kliknij prawym przyciskiem myszy nowo utworzoną bazę danych i kliknij Zadanie> Utwórz kopię zapasową ... Kopia zapasowa będzie zawierała wybrane tabele z oryginalnej bazy danych.


0

Aby uzyskać kopię w pliku w lokalnym systemie plików, działało to chwiejne narzędzie z menu przycisku Start systemu Windows: „C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ Binn \ DTSWizard.exe”

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.