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

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

Можно ли экспортировать данные в виде вставки в SQL script?

Ответ 1

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

Это позволит вам создавать сценарии для одной или всех таблиц, а один из параметров - "Script Data". Если вы установите значение ИСТИНА, мастер создаст оператор script с инструкцией INSERT INTO() для ваших данных.

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

alt text

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

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

enter image description here

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

alt text

Ответ 2

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

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

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

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

advanced button HIGHLIGHTED IN RED!1!!

Ответ 3

Если вы используете SQLServer 2008R2, вам необходимо установить типы данных в поле script.

enter image description here

Ответ 4

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

Ответ 5

Все вышесказанное приятно, но если вам нужно

  • Экспорт данных из нескольких представлений и таблиц с объединениями
  • Создание операторов вставки для различных СУБД
  • Перенос данных из любой СУБД в любую СУБД

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

Сначала узнайте, как создавать файлы спула или экспортировать наборы результатов из клиента командной строки исходного db. Во-вторых, узнайте, как выполнять SQL-запросы на месте назначения db.

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

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 db, где использование двойного значения требуется для выбора без таблицы.

Результирующий набор будет содержать script для адресата db.

Ответ 6

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

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


Список их функций:

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

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

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

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

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

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

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

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

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

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

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

Ответ 7

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

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'

Ответ 8

Для тех, кто ищет версию этой командной строки, 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