Відповіді:
У SSMS в Провіднику об’єктів клацніть правою кнопкою миші на базі даних, клацніть правою кнопкою миші та виберіть "Завдання", а потім "Створити сценарії".
Це дозволить генерувати сценарії для однієї або всіх таблиць, а одним із варіантів є "Дані сценарію". Якщо встановити його як TRUE, майстер згенерує сценарій із твердженням INSERT INTO () для ваших даних.
Якщо використання 2008 R2 або 2012 називається чимось іншим, дивіться скріншот нижче цього
Виберіть "Типи даних до сценарію", які можуть бути "Тільки дані", "Схема та дані" або "Тільки схема" - за замовчуванням).
А потім на Codeplex (включаючи джерело) є пакет " SSMS Addin ", який обіцяє майже таку ж функціональність та ще декілька (наприклад, швидке пошуку тощо)
Заради надто очевидної бездумності, дотримуючись інструкцій marc_s сюди ...
У SSMS в Провіднику об’єктів клацніть правою кнопкою миші на базі даних правою кнопкою миші та виберіть "Завдання", а потім "Створити сценарії".
... Потім я бачу екран майстра із написом " Вступ, вибір об'єктів, встановлення параметрів сценаріїв, резюме та збереження чи публікація сценаріїв " з кнопками "попередній", "наступний", "закінчити", "скасувати" внизу.
На кроці "Установити параметри сценарію" вам потрібно натиснути "Додатково", щоб отримати сторінку з параметрами. Потім, як згадував Ghlouw , тепер ви вибираєте "Типи даних до сценарію" та отримуєте прибуток.
Якщо ви використовуєте його 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
Просто оновлення скріншотів, щоб допомогти іншим, оскільки я використовую новішу версію v18, приблизно 2019 року.
Тут ви можете вибрати певні таблиці або перейти за замовчуванням для всіх. Для власних потреб я вказую лише одну таблицю.
Далі, є "Параметри сценаріїв", де ви можете вибрати вихідний файл і т. Д. Як і в декількох відповідях вище (знову ж, я просто запилюю старі відповіді на новіші версії V18.4 SQL Server Management Studio), чого ми справді хочемо знаходиться під кнопкою "Додатково". Для власних цілей мені потрібні лише дані.
Нарешті, є резюме огляду перед виконанням. Після виконання звіту про стан операцій відображається.
Ви також можете перевірити "надбудову для скриптів даних" для 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).
Ви можете обрати впорядкування даних (ЗАМОВИТИ ЗА РАЗОМ).
Відмінна утиліта резервного копіювання для операцій з налагодження шорсткої бази даних, які потребують маніпуляції з даними. Не втрачайте даних під час експерименту. Маніпулюйте даними на льоту!
Все вищесказане приємно, але якщо потрібно
то наступний трюк - єдиний спосіб.
Спочатку дізнайтеся, як створювати файли котушки або експортувати набори результатів з клієнтського командного рядка джерела db. По-друге, дізнайтеся, як виконувати оператори sql на db призначення.
Нарешті, створіть оператори вставлення (та будь-які інші заяви) для бази даних призначення, запустивши скрипт 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;
Наведений вище приклад був створений для db Oracle, коли для вибору без таблиць потрібне використання dual.
Набір результатів буде містити скрипт для призначення db.
Ось приклад створення сценарію міграції даних за допомогою курсору для ітерації вихідної таблиці.
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
Це генерує об'єднання всіх вибраних операторів, щоб вставити елементи в цільові таблиці та досить добре обробляти транзакції.