2008-08-21 20 views
53

Mam bazę danych z tabelą Klienci, którzy mają pewne dane

Mam inną bazę danych w biurze, że wszystko jest takie samo, ale moje tabela Klienci są puste
Jak mogę utworzyć plik sql w SQL Server 2005 (T-SQL), który bierze wszystko na stole Klienci z pierwszej bazy danych, tworzą, powiedzmy, buildcustomers.sql, zapakowuję ten plik, skopiuj go przez sieć, uruchom go na moim serwerze SQL i voila! mój stół Klienci są pełni

Jak mogę zrobić to samo dla całej bazy danych?SQL Server 2005 - Eksportuj tabelę programowo (uruchom plik .sql, aby ją odbudować)

+0

wybrać pewną tabelę danych skryptów, spróbuj [SQL Formatter dodatek dla SSMS] (http : //ssmsaddins.codeplex.com/) – Mandoleen

+0

było [pytanie] (http://stackoverflow.com/questions/18199/how-do-i-generate-scripts-that-will-rebuild-my-ms- sql-server-2005-database-with) o tym wczorajszym, a najlepszym rozwiązaniem był [Database Publishing Wizard] (http://www.codeplex.com/sqlhost/Wiki/View.aspx?title=Database%20Publishing% 20 Wizard). –

+0

Innym sposobem byłoby użycie doskonałego narzędzia SqlCompare firmy Redgate. – edosoft

Odpowiedz

1

Zawsze można wyeksportować dane z tabeli Klienci do pliku Excel i zaimportować te dane do tabeli Klienci.

Aby importować/eksportować dane:

  1. prawym przyciskiem myszy na bazie
  2. Przejdź do Zadania
  3. Przejdź do importować dane lub eksport danych
  4. zmienić źródło danych Microsoft Excel
  5. Postępuj zgodnie z instrukcjami
+1

To świetnie! ale importowanie z powrotem jest naprawdę bolesne. – ppumkin

0

Jeśli oba baz danych znajduje się w tej samej instancji SQL Server, czyli używać tego samego połączenia, to SQL może być pomocne:

INSERT INTO [DestinationDB].[schema].[table] ([column]) 
SELECT [column] FROM [OriginDB].[schema].[table] 
GO 
+0

To nie działa dla mnie. Poszedłem z "wybierz * do newtablename z oldtablename" jak pokazano w tym wątku (http://stackoverflow.com/questions/680552/table-level-backup) –

25

Zastosowanie bcp (z wiersza poleceń) Do plik sieciowy, a następnie go przywrócić.

np.

bcp "SELECT * FROM CustomerTable" queryout "c:\temp\CustomerTable.bcp" 
    -N -S SOURCESERVERNAME -T 

bcp TargetDatabaseTable in "c:\temp\CustomerTable.bcp" -N -S TARGETSERVERNAME -T 
  • -N wykorzystanie rodzimych typów
  • -T korzystania z zaufanego połączenia
  • -S ServerName

Bardzo szybkie i łatwe do umieszczenia w ramach kodu. (I został zbudowany kopii zapasowej bazy danych (przywrócenie) układu wokół tego samego polecenia.

+0

o to jest idealne. skryptowalny, elastyczny, dobrze obsługiwany i bardzo szybki. dzięki! – kenwarner

+0

Zobacz także [tę odpowiedź] (http://dba.stackexchange.com/a/41044/30685) dla skryptu, który wygeneruje plik bcp wywołujący bcp dla każdej tabeli. – wimh

+0

To zadziałało dla mnie świetnie.Sugeruję jednak zmodyfikowanie polecenia importowania za pomocą -E, aby obsłużyć kolumny tożsamości i -q, aby podać identyfikatory. Znak -E upewni się, że wstawiono prawidłowe wartości tożsamości. –

76

Ta funkcjonalność jest już wbudowany w SQL Server Management Studio 2008.

Wystarczy pobrać i zainstalować tylko the trial narzędzia klienckie (co powinnam wygaśnięcie) .Za pomocą Management Studio 2008 połącz się z bazą danych 2005 (zgodność wsteczna).

  1. Kliknij prawym przyciskiem baza danych
  2. Wybierz Zadania>generowanie skryptów
  3. przycisk Dalej, wybierz bazę danych ponownie
  4. Na ekranie „Wybierz skrypt Options”, istnieje opcja nazywa Dane skryptu, które będą generować instrukcje wstawiania instrukcji SQL dla wszystkich danych.

(Uwaga: w przypadku SQL Server Management Studio R2 R2 opcja nazywa się "Typy danych do skryptu" i jest ostatnią w sekcji Ogólne. Dostępne opcje to "tylko dane", "schemat i dane ”i "tylko schemat")

alt text alt text

+3

świetna odpowiedź - dzięki – Alan

+2

ta funkcja jest dostępna za pośrednictwem wiersza poleceń? – kenwarner

+0

Dzięki za wskazanie zmiany R2! Gotcha dla innych: schemat jest domyślny i zostanie przywrócony do niego, jeśli zmienisz obiekty docelowe. –

0

Po prostu lubię dodawać sesje do Sql Server Management Studio 2008. Poprawnie jest użyć kroków opisanych wcześniej. Gdy masz "Wygeneruj i opublikuj skrypt" -> "Ustaw opcje skryptu", a następnie naciśnij przycisk Zaawansowane, aby wyświetlić opcje skryptu:

! [Gdzie znaleźć zaawansowane opcje skryptu]: brak obrazu, ponieważ nie mam odpowiedniej reputacji: (

dla SQL Server Management Studio 2008 opcją dane zawarte jest „Typy danych do skryptu”

[Typy danych do skryptu]: obraz brakuje, bo nie mają właściwej reputacji :(

21

Możesz sprawdzić następujący artykuł, aby zobaczyć, jak to zrobić, używając zarówno rodzimych narzędzi SQL Server, jak i trzeciego arty narzędzia: SQL Server bulk copy and bulk import and export techniques

Disclaimer: pracować dla ApexSQL jako Inżynier Wsparcia

nadzieję, że to pomaga