Экспорт данных в SQL Server как INSERT в

Я использую SQL Server 2008 Management Studio и имею таблицу, которую я хочу перенести на другой сервер БД.

есть ли возможность экспортировать данные в виде вставки в SQL-скрипт??

10 ответов


в SSMS в Обозревателе объектов щелкните правой кнопкой мыши базу данных, щелкните правой кнопкой мыши и выберите "задачи", а затем"создать сценарии".

Это позволит вам генерировать сценарии для одной или всех таблиц, и один из вариантов - "данные сценария". Если вы установите значение TRUE, мастер создаст скрипт с инструкцией INSERT INTO () для ваших данных.

если с помощью 2008 R2 или 2012 он называется что-то еще, см. скриншот ниже этого один

alt text

2008 R2 или более поздней версии, например 2012

выберите "типы данных для скрипта", которые могут быть" только данные"," схема и данные "или" только схема " - по умолчанию).

enter image description here

и затем "SSMS Addin " пакет на Codeplex (включая источник), который обещает почти такую же функциональность и еще несколько (например, быстрый поиск и т. д.)

alt text


ради сверх-явного безмозглости, после следования инструкции marc_s здесь...

в SSMS в Обозревателе объектов щелкните правой кнопкой мыши базу данных щелкните правой кнопкой мыши и выберите "задачи", а затем"создать сценарии".

... Затем я вижу экран мастера с "введение, выберите объекты, установите параметры сценариев, резюме и сохраните или опубликуйте сценарии " С помощью кнопок prev, next, finish, cancel на дно.

на установить параметры сценариев шаг вы должны нажмите кнопку "Дополнительно" чтобы получить страницу с нужным. Затем, как Ghlouw упомянул, теперь вы выбираете "типы данных для скрипта" и прибыль.

advanced button HIGHLIGHTED IN RED!1!!


Если вы используете его SQLServer 2008R2, вам нужно установить типы данных в поле скрипта.

enter image description here


Если вы используете SQL Server 2008 R2, встроенные параметры для этого в SSMS, как описано выше, немного изменились. Вместо выбора Script data = true как показано на его диаграмме, теперь есть новая опция под названием "Types of data to script" чуть выше группировки" параметры таблицы/представления". Здесь можно выбрать только данные сценария, схема и данные или только схема. Работает как заклинание.


для тех, кто ищет версию командной строки, Microsoft освобожден mssql-scripter для этого:

$ 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

вы также можете проверить "надстройку Data Scripter" для SQL Server Management Studio 2008 из:

http://www.mssql-vehicle-data.com/SSMS


их особенности:

  • Он был разработан на SSMS 2008 и не поддерживается на версии 2005 в это время (скоро!)

  • экспорт данных быстро в T-SQL для MSSQL и MySQL синтаксис

  • CSV, TXT, XML также поддержал! Используйте весь потенциал, мощность и скорость, которые может предложить SQL.

  • Не ждите доступа или Excel, чтобы сделать работу сценариев для вас, что может занять несколько минут, чтобы сделать-пусть SQL Server сделать это за вас и принять все догадки из экспорта данных!

  • настройка вывода данных для быстрого резервного копирования, DDL манипуляции и многое другое...

  • измените имена таблиц и схемы баз данных на свои потребности, быстро и эффективно

  • экспортировать имена столбцов или просто генерировать данные без имен.

  • вы можете выбрать отдельные столбцы для сценария.

  • вы можете выбрать поднаборы данных (предложение WHERE).

  • вы можете выбрать упорядочение данных (предложение ORDER BY).

  • отличная утилита резервного копирования для тех операций отладки базы данных, которые требуют данных манипуляция. Не теряйте данные во время экспериментов. Манипулировать данными на лету!


все это хорошо, но если вам нужно

  1. экспорт данных из нескольких представлений и таблиц с соединениями
  2. Create insert операторы для различных RDBMSs
  3. перенос данных из любой СУБД в любую СУБД

тогда следующий трюк является единственным и единственным способом.

сначала узнайте, как создавать файлы катушек или экспортировать результирующие наборы из исходного клиента командной строки db. Во-вторых, узнайте, как выполнять инструкции sql на пунктом дБ.

наконец, создайте операторы insert (и любые другие операторы) для целевой базы данных, запустив сценарий sql в исходной базе данных. например,

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;

приведенный выше пример был создан для БД Oracle, где использование dual необходимо для выбора без таблицы.

результирующий набор будет содержать скрипт для целевой БД.


вот пример создания сценария переноса данных с помощью курсора для итерации исходной таблицы.

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'

после поиска много, это был мой лучший выстрел:

Если у вас много данных и вам нужен компактный и элегантный скрипт, попробуйте:пакет инструментов SSMS

Он генерирует объединение всех операторов select для вставки элементов в целевые таблицы и обработки транзакций довольно хорошо.

скриншот


для SQl server MNG Studio 2016:

enter image description here