Jak zrzucić bazę danych Microsoft SQL Server do skryptu SQL?

124

Czy jest jakiś sposób na eksport bazy danych Microsoft SQL Server do skryptu SQL?

Szukam czegoś, który zachowuje się podobnie do mysqldump, biorąc nazwę bazy danych i tworząc pojedynczy skrypt, który odtworzy wszystkie tabele, procedury składowane, ponownie wstawi wszystkie dane itp.

Widziałem http://vyaskn.tripod.com/code.htm#inserts , ale idealnie chcę, aby coś odtworzyło wszystko (nie tylko dane), co działa w jednym kroku, aby utworzyć ostateczny skrypt.

Matt Sheppard
źródło
@Matt Tak, nie eksportuje danych. Właśnie dlatego wspomniałem, że powinieneś połączyć go ze skryptem, który zaproponowałeś. Ta metoda buduje jednak skrypt we właściwej kolejności.
Julio César,
W rzeczywistości w Mangement Studio 2008 wystarczy włączyć opcję „eksportuj dane”, a skrypt będzie zawierał zarówno instrukcje schematu, jak i instrukcje wstawiania.
user24161
@MattSheppard prosimy o zaakceptowanie jednej z odpowiedzi
030

Odpowiedzi:

111

W SQL Server Management Studio kliknij prawym przyciskiem myszy bazę danych i wybierz Zadania / Generuj skrypty. Postępuj zgodnie z instrukcjami kreatora, a otrzymasz skrypt, który odtwarza strukturę danych we właściwej kolejności według kluczy obcych. W kroku kreatora zatytułowanym „Ustaw opcje skryptów” wybierz „Zaawansowane” i zmodyfikuj opcję „Typy danych do skryptu” na „Schemat i dane”

WSKAZÓWKA: W ostatnim kroku wybierz „Skrypt do nowego okna zapytania”, w ten sposób będzie działać znacznie szybciej.

Juliusz Cezar
źródło
18
Pamiętaj tylko, aby przejść do opcji zaawansowanych i powiedzieć mu, aby wykonał skrypt nie tylko schematu, ale także danych.
RomanSt
2
@romkyns zasługuje na wszystkie głosy! „Typy danych do skryptu” to dokładna nazwa opcji. Będziesz chciał wybrać „Schemat i dane”.
solidau
2
Głównym problemem ze skryptami generowanymi z SSMS jest to, że nie są one odpowiednio uporządkowane, aby uwzględnić zależności. Nie stanowi to problemu w przypadku małych baz danych, w których można to zrobić ręcznie, ale jest to zdecydowanie problem, gdy baza danych zawiera ponad 50 obiektów. Do tej pory z powodzeniem używaliśmy do tego Skryptu ApexSQL . Jest to narzędzie premium, ale można go używać w trybie próbnym, aby wykonać zadanie. Myślę, że Red Gate ma również podobne narzędzie.
David Smithers,
34

Wypróbuj Sql Server Database Publishing Wizard . Może być konieczne ponowne zamówienie skryptu, aby uruchomić go w jednym ujęciu z powodu zależności, ale będzie on zawierał schemat i dane.

Jeśli nie masz zainstalowanych obiektów SQL XMO 2005, podczas uruchamiania kreatora wystąpi błąd . Będziesz potrzebować kolekcji obiektów zarządzania Microsoft SQL Server 2005

Rob Allen
źródło
5
W rzeczywistości nie trzeba zmieniać kolejności skryptu, ponieważ usuwa wszystkie ograniczenia, tworzy schemat, wstawia dane i, na koniec, ponownie tworzy ograniczenia.
Daniel Silveira
Świetnie, to całkiem miłe
Beep beep
To świetne narzędzie obsługuje jednak tylko SQL Server 2015. Co powiesz na rok 2008 i później?
Nam G VU,
11

Uważam, że SQL Dumper jest bardzo przydatny. Jest bezpłatny, więc możesz spróbować. Pozwala wybrać tabele i kolumny bazy danych, widoki, a nawet wyniki niestandardowych zapytań jako instrukcje wstawiania SQL.

Marc Climent
źródło
Ostatnia stabilna wersja nie działa z procedurami przechowywanymi.
VMAtm
1
Ostatnią wersję można pobrać z download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html
Raynet
7

Nie znajdując odpowiedniego narzędzia, postanowiłem stworzyć własne: narzędzie wiersza polecenia sqlserverdump. Sprawdź to na http://sqlserverdump.codeplex.com/ . Odtworzy schemat i dane w jednym kroku.

Daniel
źródło
6

Wypróbuj DBSourceTools . Został zaprojektowany do skryptowania źródłowej bazy danych i ponownego wdrażania w docelowej bazie danych. Skryptuje schemat i dane.


źródło
6

Zalecane rozwiązanie działa tylko w SQL 2000 i 2005. Jeśli chcesz to zrobić w SQL 2008,

Możesz to zrobić za pomocą SQL 2008 bez żadnych innych wtyczek. Kliknij bazę danych prawym przyciskiem myszy i wybierz „Zadania -> Generuj skrypty ...”. Wybierz bazę danych i kopię zapasową. Kliknij przycisk Dalej i ustaw „Dane skryptu” na „prawda”.

Dalsza dokumentacja pod linkiem:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- procedura-przechowywana-funkcje-wyzwalacze-tabele-widoki-ograniczenia-i-wszystkie-inne-obiekty-bazy danych /

tzerb
źródło
2

SQL Server Database Publishing Wizard wydaje się rzeczywiście najlepszym sposobem na zrobienie tego. Problem polega na tym, że wydaje się, że nie działa w systemie Windows 7. Musiałem użyć starego komputera, aby z niego skorzystać. Z drugiej strony, działa ze starszymi wersjami SQL Server, takimi jak 2000.

W przypadku nowszych wersji SQL i systemów operacyjnych warto sprawdzić to oprogramowanie: http://sqlbackupandftp.com/


źródło
0

Ombelt jest dobrym narzędziem do eksportowania baz danych MS SQL Server. www.ombelt.com

podobnie jak inne obiekty zrzutu DB.

Pracuje dla mnie.

Tim Williscroft
źródło
0

Sprawdź projekt zrzutu schematu Microsoft SQL Server ( mssql-schema-dumpnarzędzie w GitHub ).

Stosowanie: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

Eksport obsługuje:

  • DB: Schemat, typy użytkowników, typy tabel użytkowników, wyzwalacze, katalogi pełnotekstowe, listy zatrzymania pełnego tekstu, procedury składowane, funkcje
  • DB.Tabele: Schemat, wyzwalacze, indeksy, DRI, statystyki
  • DB.Views: Schemat, wyzwalacze, indeksy, DRI, statystyki
kenorb
źródło