Экспорт данных В 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