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.