Экспорт данных в SQL Server в виде вставки в
Я использую SQL Server 2008 Management Studio и имею таблицу, которую я хочу перенести на другой сервер БД.
есть ли возможность экспортировать данные в виде вставки в SQL-скрипт??
10 ответов:
в SSMS в Обозревателе объектов щелкните правой кнопкой мыши базу данных, щелкните правой кнопкой мыши и выберите "задачи", а затем "создать сценарии".
Это позволит вам создавать скрипты для одной или всех таблиц, и один из вариантов - "данные скрипта". Если это значение равно TRUE, мастер создаст сценарий с инструкцией INSERT INTO () для ваших данных.
если с помощью 2008 R2 или 2012 он называется что-то еще, см. скриншот ниже этого один
2008 R2 или более поздней версии, например, 2012
выберите "типы данных для сценария", которые могут быть" только данные"," схема и данные "или" только схема " - по умолчанию).
и затем " SSMS Addin" пакет на Codeplex (включая источник), который обещает почти такую же функциональность и еще несколько (например, быстрый поиск и т. д.)
ради чрезмерно явного безмозглости, после следования инструкции marc_s здесь...
в SSMS в Обозревателе объектов щелкните правой кнопкой мыши базу данных щелкните правой кнопкой мыши и выберите "задачи", а затем "создать сценарии".
... Затем я вижу экран мастера с "введение, выберите объекты, установите параметры сценариев, сводку и сохраните или опубликуйте сценарии " С помощью кнопок prev, next, finish, cancel дно.
на установить параметры сценариев шаг вы должны нажмите кнопку "Дополнительно" чтобы получить страницу с нужным. Тогда, как Ghlouw уже упоминалось, теперь вы выбираете "типы данных для скрипта" и прибыль.
Если вы используете 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
вы также можете проверить "Data Scripter Add-In" для SQL Server Management Studio 2008 из:
http://www.mssql-vehicle-data.com/SSMS
их особенности:
Он был разработан на SSMS 2008 и не поддерживается в версии 2005 в настоящее время (скоро!)
экспорт данных быстро в T-SQL для MSSQL и MySQL синтаксис
CSV, TXT, XML также являются поддержано! Используйте весь потенциал, мощность и скорость, которые может предложить SQL.
Не ждите доступа или Excel, чтобы сделать работу сценариев для вас, что может занять несколько минут, чтобы сделать-пусть SQL Server сделает это за вас и взять все догадки из экспорта данных!
настройка вывода данных для быстрого резервного копирования, DDL манипуляции и многое другое...
измените имена таблиц и схемы баз данных на свои потребности, быстро и эффективно
экспорт имен столбцов или просто генерировать данные без имен.
вы можете выбрать отдельные столбцы для сценария.
вы можете выбрать подмножества данных (предложение WHERE).
вы можете выбрать упорядочение данных (ORDER BY clause).
отличная утилита резервного копирования для тех шероховатых операций отладки базы данных, которые требуют данных манипуляция. Не теряйте данные во время экспериментов. Манипулировать данными на лету!
все это хорошо, но если вам нужно
- экспорт данных из нескольких представлений и таблиц с соединениями
- создать инструкции вставки для различных РСУБД
- перенос данных из любой СУБД в любую СУБД
тогда следующий трюк является единственным и единственным способом.
сначала узнайте, как создавать буферные файлы или экспортировать результирующие наборы из исходного клиента командной строки db. Во-вторых, узнайте, как выполнять инструкции sql на destination db.
наконец, создайте инструкции insert (и любые другие инструкции) для целевой базы данных, запустив сценарий 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
Он генерирует объединение всех операторов select для вставки элементов в целевые таблицы и обработки транзакций довольно хорошо.