Odpowiedzi:
W SSMS w Object Explorer kliknij prawym przyciskiem myszy bazę danych, kliknij prawym przyciskiem myszy i wybierz „Zadania”, a następnie „Generuj skrypty”.
Umożliwi to generowanie skryptów dla jednej lub wszystkich tabel, a jedną z opcji jest „Dane skryptu”. Jeśli ustawisz na PRAWDA, kreator wygeneruje skrypt z instrukcją INSERT INTO () dla twoich danych.
Jeśli używasz 2008 R2 lub 2012, nazywa się to czymś innym, zobacz zrzut ekranu poniżej tego
Wybierz „Typy danych do skryptu”, które mogą być „Tylko dane”, „Schemat i dane” lub „Tylko schemat” - domyślnie).
A potem jest pakiet „ SSMS Addin ” na Codeplex (w tym źródła), który obiecuje prawie taką samą funkcjonalność i kilka innych (jak szybkie wyszukiwanie itp.)
Ze względu na nadmierną bezmyślność, po wykonaniu instrukcji marc_s tutaj ...
W SSMS w Object Explorer kliknij prawym przyciskiem myszy bazę danych, kliknij prawym przyciskiem myszy i wybierz „Zadania”, a następnie „Generuj skrypty”.
... Następnie widzę ekran kreatora z „ Wstępem, Wybierz obiekty, Ustaw opcje skryptów, Podsumowanie oraz Zapisz lub opublikuj skrypty ” z przyciskami poprzedni, następny, zakończ, anuluj.
Na etapie ustawić opcje skryptów , trzeba kliknąć przycisk „Zaawansowane” , aby dostać się na stronę z opcjami. Następnie, jak wspomniał Ghlouw , wybierasz teraz „Typy danych do skryptu” i zysk.
Jeśli go używasz SQLServer 2008R2, musisz ustawić Typ danych w polu skryptu.
Jeśli korzystasz z SQL Server 2008 R2, wbudowane opcje, aby to zrobić w SSMS, ponieważ marc_s opisane powyżej nieco się zmieniły. Zamiast wybierać, Script data = true
jak pokazano na jego schemacie, istnieje teraz nowa opcja o nazwie "Types of data to script"
tuż nad grupą „Opcje tabeli / widoku”. Tutaj możesz wybrać, aby skrypty dotyczyły tylko danych, schematu i danych lub tylko schematu. Działa jak marzenie.
Dla tych, którzy szukają wersji wiersza polecenia, Microsoft wydałmssql-scripter
to zrobić:
$ pip install mssql-scripter
# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
-f './' --file-per-object
Właśnie aktualizuję zrzuty ekranu, aby pomóc innym, ponieważ korzystam z nowszej wersji 18, około 2019 r.
Tutaj możesz wybrać określone tabele lub przejść z domyślnym ustawieniem wszystkich. Na własne potrzeby wskazuję tylko jeden stół.
Następnie są „Opcje skryptów”, w których można wybrać plik wyjściowy itp. Podobnie jak w wielu odpowiedziach powyżej (ponownie, odkurzam stare odpowiedzi dla nowszych wersji SQL Server Management Studio v18.4), czego naprawdę chcemy znajduje się pod przyciskiem „Zaawansowane”. Do własnych celów potrzebuję tylko danych.
Wreszcie przed wykonaniem znajduje się podsumowanie recenzji. Po wykonaniu raportu pokazany jest status operacji.
Możesz również sprawdzić „Dodatek do scriptera danych” dla SQL Server Management Studio 2008 z:
http://www.mssql-vehicle-data.com/SSMS
Ich lista funkcji:
Został on opracowany na SSMS 2008 i obecnie nie jest obsługiwany w wersji 2005 (wkrótce!)
Szybko eksportuj dane do T-SQL dla MSSQL i składni MySQL
Obsługiwane są również CSV, TXT, XML! Wykorzystaj pełny potencjał, moc i szybkość, jakie SQL ma do zaoferowania.
Nie czekaj, aż Access lub Excel wykonają dla Ciebie pracę skryptową, co może zająć kilka minut - pozwól SQL Server to zrobić za Ciebie i zgadnij, jak eksportować dane!
Dostosuj dane wyjściowe do szybkich kopii zapasowych, manipulacji DDL i innych ...
Zmień nazwy tabel i schematy baz danych na swoje potrzeby, szybko i skutecznie
Eksportuj nazwy kolumn lub po prostu generuj dane bez tych nazw.
Możesz wybrać poszczególne kolumny do skryptu.
Możesz wybrać podzestawy danych (klauzula WHERE).
Możesz wybrać porządkowanie danych (klauzula ORDER BY).
Świetne narzędzie do tworzenia kopii zapasowych dla tych nieczysty operacji debugowania bazy danych, które wymagają manipulacji danymi. Nie trać danych podczas eksperymentowania. Manipuluj danymi w locie!
Wszystko powyższe jest miłe, ale jeśli trzeba
to następująca sztuczka jest jedyną drogą.
Najpierw dowiedz się, jak tworzyć zbiory buforowe lub eksportować zestawy wyników ze źródłowego klienta wiersza komend db. Po drugie dowiedz się, jak wykonywać instrukcje SQL na docelowej bazie danych.
Na koniec utwórz instrukcje wstawiania (i wszelkie inne) dla docelowej bazy danych, uruchamiając skrypt sql w źródłowej bazie danych. na przykład
SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;
SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;
Powyższy przykład został utworzony dla bazy danych Oracle, w której użycie opcji dual jest konieczne w przypadku wyborów bez tabel.
Zestaw wyników będzie zawierał skrypt dla docelowej bazy danych.
Oto przykład tworzenia skryptu migracji danych za pomocą kursora do iteracji tabeli źródłowej.
SET NOCOUNT ON;
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1
DECLARE cur CURSOR FOR
SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
FROM CV_ORDER_STATUS
ORDER BY [Stage]
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'
PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';
OPEN cur
FETCH NEXT FROM cur
INTO @row
WHILE @@FETCH_STATUS = 0
BEGIN
IF @first = 1
SET @first = 0
ELSE
SET @out = @out + ',' + CHAR(13);
SET @out = @out + @row
FETCH NEXT FROM cur into @row
END
CLOSE cur
DEALLOCATE cur
PRINT @out
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'
Po wielu poszukiwaniach był to mój najlepszy strzał:
Jeśli masz dużo danych i potrzebujesz kompaktowego i eleganckiego skryptu, wypróbuj: Pakiet narzędzi SSMS
Generuje sumę wszystkich instrukcji select, aby wstawiać elementy do tabel docelowych i całkiem dobrze obsługiwać transakcje.