Я использую SQL Server 2008 Management Studio и имею таблицу, которую я хочу перенести на другой сервер db.
Можно ли экспортировать данные в виде вставки в SQL script?
Я использую SQL Server 2008 Management Studio и имею таблицу, которую я хочу перенести на другой сервер db.
Можно ли экспортировать данные в виде вставки в SQL script?
В SSMS в обозревателе объектов щелкните правой кнопкой мыши по базе данных правой кнопкой мыши и выберите "Задачи", а затем "Сгенерировать скрипты".
Это позволит вам создавать сценарии для одной или всех таблиц, а один из параметров - "Script Data". Если вы установите значение ИСТИНА, мастер создаст оператор script с инструкцией INSERT INTO() для ваших данных.
, если использовать 2008 R2 или 2012, он называется чем-то другим, см. снимок экрана ниже этого
Выберите "Типы данных в Script", которые могут быть "Только данные", "Схема и данные" или "Только схема" - значение по умолчанию).
И затем есть SSMS Addin" Пакет на Codeplex (включая источник), который promises имеет почти такую же функциональность и еще несколько (например, быстрый поиск и т.д.)
Для чрезмерно явной безмозгности после выполнения следующих инструкций marc_s здесь...
В SSMS в Обозревателе объектов щелкните правой кнопкой мыши по базе данных щелкните правой кнопкой мыши и выберите "Задачи", а затем "Сгенерировать скрипты".
... Затем я вижу экран мастера с надписью " Введение," Выбрать объекты "," Установить параметры сценариев "," Сводка "и" Сохранить или опубликовать сценарии "" ) с кнопками "предыдущий, следующий", "конец", "отмена" внизу.
На шаге Установить параметры сценариев вам нужно нажать "Дополнительно" , чтобы получить страницу с параметрами. Затем, как отметил Ghlouw, теперь вы выбираете "Типы данных для script" и получаете прибыль.
Если вы используете SQLServer 2008R2, вам необходимо установить типы данных в поле script.
Если вы используете SQL Server 2008 R2, встроенные параметры для этого в SSMS, описанные выше marc_s, немного изменились. Вместо выбора Script data = true
, как показано на его диаграмме, теперь появилась новая опция под названием "Types of data to script"
чуть выше группировки "Таблица/Вид". Здесь вы можете выбрать только script только данные, схему и данные или схему. Работает как шарм.
Все вышесказанное приятно, но если вам нужно
то следующий трюк является единственным и единственным способом.
Сначала узнайте, как создавать файлы спула или экспортировать наборы результатов из клиента командной строки исходного 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.
Вы также можете проверить "надстройку 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).
Отличная утилита резервного копирования для этих операций отладки базы данных, требующих манипулирования данными. Не теряйте данные во время экспериментов. Манипулируйте данными на лету!
Вот пример создания переноса данных 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'
Для тех, кто ищет версию этой командной строки, 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