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ć?

EBS
źródło
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
Vijay Hulmani
źródło
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 .

MGOwen
źródło
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.

Kent Aguilar
źródło
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.

Pankaj
źródło
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
BJ Patel
źródło
1
Czy różni się od poprzedniej odpowiedzi ?
Ofer Zelig
8

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

SELECT * INTO  [dbo].[tbl_NewTable] 
FROM [dbo].[tbl_OldTable]
Kod
źródło
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

benjamin moskovits
źródło
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
Umesh Kumar Sharma
źródło
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.

Simpa
źródło
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”

wwmbes
źródło