Ответы:
В SSMS в обозревателе объектов щелкните правой кнопкой мыши базу данных, щелкните правой кнопкой мыши и выберите «Задачи», а затем «Создать сценарии».
Это позволит вам создавать сценарии для одной или всех таблиц, и одним из параметров является «Данные сценария». Если для этого параметра установлено значение TRUE, мастер сгенерирует сценарий с оператором INSERT INTO () для ваших данных.
Если используется 2008 R2 или 2012, это называется как-то еще, см. Скриншот ниже
Выберите «Типы данных для сценария», которые могут быть «Только данные», «Схема и данные» или «Только схема» - по умолчанию).
И еще есть пакет « Надстройка SSMS » в Codeplex (включая исходный код), который обещает почти те же функциональные возможности и еще несколько (например, быстрый поиск и т. Д.)
Ради явного безмозглости, следуя инструкциям marc_s здесь ...
В SSMS в обозревателе объектов щелкните правой кнопкой мыши базу данных, щелкните правой кнопкой мыши и выберите «Задачи», а затем «Создать сценарии».
... Затем я вижу экран мастера с надписью « Введение, выбор объектов, настройка параметров сценариев, сводка и сохранение или публикация сценариев » с кнопками «Предыдущая», «Следующая», «Готово», «Отмена» внизу.
На шаге « Задать параметры сценариев» необходимо нажать «Дополнительно», чтобы открыть страницу с параметрами. Затем, как упоминал Глув , теперь вы выбираете «Типы данных для сценария» и прибыль.
Если вы используете SQLServer 2008R2, вам нужно установить Типы данных в поле скрипта.
Если вы используете SQL Server 2008 R2, встроенные опции для этого в SSMS, как описано выше в marc_s, немного изменились. Вместо выбора, 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
Просто обновляем скриншоты, чтобы помочь другим, поскольку я использую более новую версию 18, около 2019 года.
Здесь вы можете выбрать определенные таблицы или перейти по умолчанию из всех. Для своих нужд я указываю только одну таблицу.
Далее есть «Параметры сценариев», в которых вы можете выбрать выходной файл и т. Д. Как и в нескольких приведенных выше ответах (опять же, я просто вычищаю старые ответы для более новых, v18.4 SQL Server Management Studio), чего мы действительно хотим находится под кнопкой «Дополнительно». Для моих собственных целей мне нужны только данные.
И наконец, перед выполнением есть обзорная информация. После выполнения отчета отображается состояние операций.
Вы также можете ознакомиться с надстройкой 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.
Не ждите, пока Access или Excel выполнят для вас работу сценариев, которая может занять несколько минут - пусть SQL Server сделает это за вас и возьмет на себя все возможные предположения при экспорте ваших данных!
Настройте вывод данных для быстрого резервного копирования, управления DDL и многого другого ...
Измените имена таблиц и схемы базы данных в соответствии с вашими потребностями, быстро и эффективно
Экспортируйте имена столбцов или просто генерируйте данные без имен.
Вы можете выбрать отдельные столбцы для сценария.
Вы можете выбрать подмножества данных (предложение WHERE).
Вы можете выбрать порядок данных (предложение ORDER BY).
Отличная утилита резервного копирования для тех шероховатых операций отладки базы данных, которые требуют манипулирования данными. Не теряйте данные во время экспериментов. Манипулируйте данными на лету!
Все вышеперечисленное приятно, но если нужно
тогда следующий трюк единственный и единственный.
Сначала узнайте, как создавать файлы спула или экспортировать наборы результатов из клиента командной строки исходного db. Во-вторых, узнайте, как выполнять операторы sql в целевой базе данных.
Наконец, создайте операторы вставки (и любые другие операторы) для целевой базы данных, запустив сценарий 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 Tools Pack
Он генерирует объединение всех операторов выбора для вставки элементов в целевые таблицы и довольно хорошо обрабатывает транзакции.