Импорт и экспорт данных в SQL Server и базе данных SQL Azure
Для импорта и экспорта данных в SQL Server и базе данных SQL Azure доступны разнообразные методы. Сюда входят инструкции Transact-SQL, программы командной строки и мастеры.
Кроме того, вы можете импортировать и экспортировать данные в разных форматах. Эти форматы включают неструктурированные файлы, файлы Excel, основные типы реляционных баз данных и форматы различных облачных служб.
Методы импорта и экспорта данных
Использование инструкций Transact-SQL
Вы можете импортировать данные с помощью команд BULK INSERT или OPENROWSET(BULK. ) . Обычно эти команды выполняются в SQL Server Management Studio (SSMS). Дополнительные сведения см. в разделе Массовый импорт данных с помощью инструкции BULK INSERT или OPENROWSET(BULK. ).
Используйте BCP в командной строке
Вы можете импортировать и экспортировать данные с помощью служебной программы командной строки BCP. Дополнительные сведения см. в разделе Массовый импорт и экспорт данных с использованием программы BCP.
Использование мастера импорта неструктурированных файлов
Если вам не нужны все параметры конфигурации, доступные в окне мастера экспорта и импорта (а также другие средства), вы можете импортировать текстовый файл в SQL Server с помощью мастера импорта неструктурированных файлов в SQL Server Management Studio (SSMS). Дополнительные сведения см. в следующих статьях:
- Мастер импорта неструктурированных файлов в SQL
- Новые возможности SQL Server Management Studio 17.3
Использование мастера импорта и экспорта SQL Server
Мастер импорта и экспорта SQL Server позволяет вам экспортировать данные из самых разных источников и импортировать их во множество различных назначений. Чтобы использовать мастер, необходимо установить SQL Server Integration Services (SSIS) или SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Импорт и экспорт данных с помощью мастера импорта и экспорта SQL Server.
Разработка собственного импорта и экспорта
Если вы хотите настроить свой собственный вариант импорта данных, воспользуйтесь следующими функциями или службами.
- SQL Server Integration Services Дополнительные сведения см. в разделе SQL Server Integration Services.
- Фабрика данных Azure Дополнительные сведения см. в разделе Введение в фабрику данных Azure.
Форматы данных для импорта и экспорта
Поддерживаемые форматы
Вы можете выполнять импорт и экспорт данных в виде неструктурированных файлов, а также во множестве других форматов, в виде реляционных баз данных и облачных служб. Дополнительные сведения об использовании этих вариантов в конкретных инструментах см. в следующих разделах.
- Сведения о мастере импорта и экспорта SQL Server см. в разделе Подключение к источникам данных с помощью мастера импорта и экспорта SQL Server.
- Сведения о SQL Server Integration Services см. в разделе Соединения в службах Integration Services (SSIS).
- Сведения о фабрике данных Azure см. в разделе Соединители фабрики данных Azure.
Часто используемые форматы данных
Для часто используемых форматов данных есть особые возможности и примеры. Дополнительные сведения об этих форматах данных, см. в следующих разделах:
- сведения об Excel см. в разделе Импорт из Excel;
- сведения о JSON см. в разделе Импорт документов JSON;
- сведения об XML см. в разделе Импорт и экспорт XML-документов;
- сведения о хранилище BLOB-объектов Azure см. в разделе Импорт и экспорт данных из хранилища BLOB-объектов Azure.
Дальнейшие действия
Если вы не знаете, с чего начать импорт или экспорт, попробуйте запустить мастер импорта и экспорта SQL Server. Краткие сведения см. в разделе Приступая к работе с простым примером мастера импорта и экспорта.
Как экспортировать базу данных sql server
Экспорт таблицы может осуществляться в формат текстовых файлов (*.txt, *.csv), файлов SQL-запросов (*.sql), баз данных SQLite (*.sqlite, *sqlitedb), баз данных Microsoft Access (*.mdb, *.accdb), баз данных Microsoft SQL Server (*.mdf), таблиц Paradox (*.db) и таблиц dBase (*.dbf).
Для экспорта надо:
- В редакторе баз данных/раздел Таблицы выделить таблицу для экспорта, затем сделать щелчок правой кнопкой мыши и выбрать пункт Экспорт .
- В стандартном окне в списке Тип файла выбрать формат экспорта данных: Текстовые файлы (*.txt, *.csv) , Файлы SQL-запросов (*.sql) , Базы данных SQLite (*.sqlite, *sqlitedb) , Базы данных Microsoft Access (*.mdb, *.accdb) , Базы данных Microsoft SQL Server (*.mdf) , Таблицы Paradox (*.db) , Таблицы dBase (*.dbf) .
- При экспорте в файлы SQL-запросов и текстовые файлы необходимо будет указать дополнительные параметры:
- для SQL-запросов: имя таблицы, диалект SQL, указать будут ли включены структуры таблиц, будут ли включены данные и выбрать формат файла, указать кодировку файла;
- для текстового файла: выбрать разделители полей, ограничители текста, указать содержит ли первая строка имена полей, являются ли они пользовательскими, указать кодировку файла.
Экспорт данных в базу данных SQL с помощью хранимой процедуры
Мне нужно записывать данные в базу данных SQL с использованием хранимой процедуры, поскольку мне нужно выполнять дополнительные проверки перед записью данных.
Что такое хранимая процедура:
Хранимая процедура (stored procedure или stored proc) — это функция на сервере, которая обеспечивает особый доступ для приложений к базе данных SQL. Такие процедуры выполняются и обрабатывают данные на стороне сервера.
Когда может потребовать хранимая процедура:
- Обработка данных на стороне сервера.
- Запись данных в несколько таблиц.
- Добавление первичных или дополнительных ключей к записываемым данным.
- Обновление или запись данных по дополнительным условиям.
Требования:
- Advanced OPC Data Logger Professional, Enterprise, или пробная версия;
- SQL Database Professional
Подразумевается что:
У вас уже настроен парсер и подготовлены переменные парсера для экспорта.
Для этого примера переменные парсера взяты из предыдущего примера.
Также вы можете просмотреть другие примеры парсинга данных (разные типы парсеров)
Решение:
Замечание: Вам потребуются знания языка программирования SQL для вашей базы данных, поскольку хранимая процедура это код программы для сервера.
Будем считать, что у вас есть доступ к базе данных и права для создания объектов в ней. Прежде всего, создайте таблицу в базе данных для сохранения входящих данных. Выберите существующую базу данных, или создайте новую для тестирования. Самый простой способ — использовать инструменты разработчика, предоставляемые производителем базы:
- SQL Server Management Studio для MSSQL.
- MySQL Workbench для MySQL.
- pgAdmin для PostgreSQL.
Обратитесь к документации на соответствующий игструмент для дополнительной информации.
Мы подготовили пример таблицы (рис. 1). Это прототип. Вы можете изменить его по своим требованиям или использовать вашу существующую таблицу.
MS SQL Server
CREATE TABLE dbo.[DATA] ( [ID] decimal(10,0) IDENTITY(1,1) NOT NULL, [DATE_TIME_STAMP] datetime NULL, [DATA_SOURCE_NAME] nvarchar(32) NULL, [DEVICE_ID] nvarchar(32) NULL, [V1] real NULL, [V2] real NULL, [V3] real NULL, CONSTRAINT [PK_DATA] PRIMARY KEY ([ID] ASC) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
MySQL
CREATE TABLE `DATA` ( `ID` int(11) NOT NULL auto_increment, `DATE_TIME_STAMP` DATETIME NULL, `DATA_SOURCE_NAME` VARCHAR(32) NULL, `DEVICE_ID` VARCHAR(32) NULL, `V1` DOUBLE NULL, `V2` DOUBLE NULL, `V3` DOUBLE NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB;
PostgreSQL
CREATE TABLE "DATA" ( "ID" SERIAL, "DATE_TIME_STAMP" timestamp DEFAULT NULL, "DATA_SOURCE_NAME" varchar(32) DEFAULT NULL, "DEVICE_ID" varchar(32) DEFAULT NULL, "V1" real DEFAULT NULL, "V2" real DEFAULT NULL, "V3" real DEFAULT NULL, PRIMARY KEY (ID) );
Подготовьте хранимую процедуру в базе данных и выдайте права «Execute» для пользователя. Следующий пример демонстрирует хранимую процедуру, которая проверяет входящие данные и записывает их в таблицу.
MS SQL Server
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'data_insert') DROP PROCEDURE data_insert GO CREATE PROCEDURE [dbo].[data_insert] @DATE_TIME_STAMP datetime, @DATA_SOURCE_NAME nvarchar(32), @DEVICE_ID nvarchar(32), @V1 float, @V2 float, @V3 float WITH EXECUTE AS OWNER AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (@V1 > 100) OR (@V2 > 100) OR (@V3 > 100) BEGIN RETURN; END; UPDATE DATA SET DATE_TIME_STAMP = @DATE_TIME_STAMP, V1 = @V1, V2 = @V2, V3 = @V3 WHERE DATA_SOURCE_NAME = @DATA_SOURCE_NAME AND DEVICE_ID = @DEVICE_ID; END; GO
MySQL
DROP PROCEDURE IF EXISTS `data_insert`; CREATE PROCEDURE `data_insert`( IN `DATE_TIME_STAMP` DATETIME, IN `DATA_SOURCE_NAME` VARCHAR(32), IN `DEVICE_ID` VARCHAR(32), IN `V1` DOUBLE, IN `V2` DOUBLE, IN `V3` DOUBLE) BEGIN SET @DATE_TIME_STAMP = DATE_TIME_STAMP; SET @DATA_SOURCE_NAME = DATA_SOURCE_NAME; SET @DEVICE_ID = DEVICE_ID; SET @V1 = V1; SET @V2 = V2; SET @V3 = V3; IF (@V1
PostgreSQL
CREATE OR REPLACE FUNCTION data_insert( IN DATE_TIME_STAMP_1 timestamp, IN DATA_SOURCE_NAME_1 varchar(32), IN DEVICE_ID_1 varchar(32), IN V1_1 real, IN V2_1 real, IN V3_1 real) RETURNS void SECURITY DEFINER AS $$ BEGIN IF (V1_1 > 100) OR (V2_1 > 100) OR (V3_1 > 100) THEN RETURN; END IF; UPDATE DATA SET DATE_TIME_STAMP = DATE_TIME_STAMP_1, V1 = V1_1, V2 = V2_1, V3 = V3_1 WHERE DATA_SOURCE_NAME = DATA_SOURCE_NAME_1 AND DEVICE_ID = DEVICE_ID_1; END; $$ LANGUAGE plpgsql; -- split line
Выберите и настройте модуль экспорта данных "SQL Database Professional" для вызова хранимой процедуры на вашем сервере (рис. 1).

Рис. 1. Выбор модуля SQL Database.
Перейдите в окно настройки модуля "SQL Database Professional" и выберите страницу "Режим соединения" на левой панели (рис. 2)

Рис. 2. Модуль SQL Database. Активация подключения.
- Отключите опцию "Временно отключено" (поз. 1).
- Опция №2 указывает программе всегда поддерживать активное соединение с базой данных. Это увеличивает производительность при большом потоке данных.
- Опция №3 активирует режим автоматического переподключения к базе при потере связи с ней.
На второй странице "Параметры соединения" (рис. 3) вы можете выбрать тип базы данных и настроить параметры подключения к ней. Обратитесь к руководству по модулю SQL Database для подробных разъяснений. Вы должны успешно протестировать подключение к базе кликнув на кнопке "Проверить связь" (поз. 2), перед тем как переходить к следующему шагу.

Рис. 3. Параметры соединения.
На третьей странице "Обработка ошибок" (рис. 4) выберите как программа должна реагировать на ошибки, возникающие при записи данных в БД.

Рис. 5. Обработка ошибок.
Опция №2 позволяет активировать запись во временный файл, когда база данных не доступна. А затем восстановить данные из файла, когда удастся подключиться к базе данных снова.
7. Последняя страница "Очередь SQL" (рис. 6) очень важна. Вы должны добавить SQL запрос и связать параметры SQL запроса и переменные парсера.

Рис. 7. Очередь SQL.
Для добавления SQL запроса в очередь кликните на кнопке "Действие → Добавить SQL в очередь" (рис. 7, поз. #2), а затем укажите текст SQL запроса в SQL редакторе (рис. 8) кликнув на поле "Текст SQL", а затем на кнопке с точками в нем (рис. 7).

Рис. 8. SQL редактор.
Укажите текст SQL запроса для вызова хранимой процедуры в соответствии с синтаксисом языка SQL вашей базы данных. Параметры вида ":TIMESTAMP" или ":V1" позволяют передать значение переменной парсера в SQL запрос, и далее в базу. Каждый параметр затем появляется в очереди (рис. 7), где вы должны указать тип данных ( поле Тип данных) и привязать переменную парсера (поле Имя переменной парсера). Тип данных должен соответствовать типу данных соответствующего параметра вашей хранимой процедуры. Оба типа данных должны соответствовать типу данных значения переменной парсера.
MS SQL Server
exec data_insert :TIMESTAMP, :DS_NAME, :DEVICE_ID, :V1, :V2, :V3
MySQL
call data_insert(:timestamp, :ds_name, :device_id, :v1, :v2, :v3);
PostgreSQL
select data_insert(:timestamp, :ds_name, :device_id, :v1, :v2, :v3);
Кликните на кнопке "OK" для того чтобы закрыть все диалоговые окна и сохранить все настройки.
Если модуль SQL Database Professional настроен правильно, то в главном окне программы будут отображаться сообщения об успешной записи данных в БД.
Частые вопросы
Как много параметров может быть у хранимой процедуры?
Количество зависит от типа и версии базы данных SQL. Оптимальный максимум - это 64 параметра.
Тип данных параметра моей хранимой процедуры не точно совпадает с типом данных значения. Именно такого типа данных нет в вашем списке. Что делать?
Модуль может автоматически преобразовывать близкие типы данных. Например, целые числа с разной точностью и разрядностью (возможна потеря точности), целые числа в вещественные, любые числа в строку.
Сопутствующие статьи:
- Экспорт данных в Microsoft SQL Server 2014-2022 с помощью модуля "ODBC Database" Модули: ODBC Database, ASCII data parser and query, DDE server
- Экспорт данных в базу данных MySQL с помощью модуля "SQL Database Professional" Модули: SQL Database Professional, ASCII data parser and query, DDE server, Aggregator, ODBC database
- Экспорт данных в базу данных с помощью хранимой процедуры Модули: SQL Database Professional
- Запись данных в Microsoft Access с помощью модуля "ODBC Database" Модули: ODBC Database, ASCII data parser and query, DDE server
запустить мастер импорта и экспорта SQL Server
В этой статье описаны четыре способа запуска мастера импорта и экспорта SQL Server. Используйте это средство для импорта данных из и экспорта данных в любой поддерживаемый источник данных.
Варианты запуска мастера:
- Из меню "Пуск".
- Из командной строки.
- Из SQL Server Management Studio (SSMS).
- Из Visual Studio c SQL Server Data Tools (SSDT).
Другой способ импорта данных — в Azure Data Studio с расширением импорта SQL Server.
Предварительное требование — у вас на компьютере установлен этот мастер?
Если вы хотите запустить мастер, но на вашем компьютере не установлен Microsoft SQL Server, мастер импорта и экспорта SQL Server можно установить в рамках установки SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Скачивание SQL Server Data Tools (SSDT).
Чтобы использовать 64-разрядную версию мастера экспорта и импорта SQL Server, нужно установить SQL Server. SQL Server Data Tools (SSDT) и SQL Server Management Studio (SSMS) являются 32-разрядными приложениями и устанавливают только 32-разрядные файлы, включая 32-разрядную версию мастера.
Меню "Пуск"
Запуск мастера экспорта и импорта SQL Server из меню "Пуск"

- В меню "Пуск" найдите и разверните папку для версии SQL Server.
- Выберите средство импорта и экспорта данных SQL Server (версия), которое вы хотите использовать. Если источнику данных не требуется 32-разрядный поставщик данных, выбирайте 64-разрядную версию мастера.
С помощью командной строки
Запуск мастера экспорта и импорта SQL Server из командной строки
В окне командной строки запустите DTSWizard.exe в одном из следующих каталогов:
- C:\Program Files\Microsoft SQL Server\160\DTS\Binn для 64-разрядной версии.
- 160 = SQL Server 2022. Это значение зависит от вашей версии SQL Server.
- 160 = SQL Server 2022. Это значение зависит от вашей версии SQL Server.
Если источнику данных не требуется 32-разрядный поставщик данных, выбирайте 64-разрядную версию мастера.
Например, чтобы запустить 64-разрядную версию мастера из командной строки в SQL Server 2022, выполните следующую команду:
C:\Program Files\Microsoft SQL Server\160\DTS\Binn\DTSWizard.exeSQL Server Management Studio (SSMS)
Запуск мастера экспорта и импорта SQL Server из среды SQL Server Management Studio (SSMS)
- В SQL Server Management Studio подключитесь к экземпляру ядра СУБД SQL Server.
- Разверните узел Базы данных.
- Щелкните базу данных правой кнопкой мыши.
- Наведите указатель мыши на пункт Задачи.
- Выберите один из следующих параметров:
- Импорт данных
- Экспорт данных

Если у вас нет установленной среды SQL Server Management Studio, см. статью "Скачать SQL Server Management Studio (SSMS)".
Visual Studio
Запуск мастера экспорта и импорта SQL Server из Visual Studio c SQL Server Data Tools (SSDT)
В Visual Studio с SQL Server Data Tools (SSDT) с открытым проектом служб Integration Services выполните одно из следующих действий.
- В меню Проект выберите пункт Мастер импорта и экспорта служб SSIS.
- или - - В обозревателе решений щелкните правой кнопкой мыши папку Пакеты служб SSIS и выберите Мастер импорта и экспорта служб SSIS.

Если среда Visual Studio не установлена или установлена без SQL Server Data Tools, см. статью Скачать SQL Server Data Tools (SSDT).
Получение мастера
Если вы хотите запустить мастер, но на вашем компьютере не установлен Microsoft SQL Server, мастер импорта и экспорта SQL Server можно установить в рамках установки SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Скачивание SQL Server Data Tools (SSDT).
Получение справки во время работы мастера
Нажмите клавишу F1 при просмотре любой страницы или диалогового окна, чтобы открыть документацию по текущей странице мастера.
Дальнейшие действия
При запуске мастера открывается страница Мастер импорта и экспорта SQL Server. На этой странице никакие действия не требуются. Дополнительные сведения см. в разделе Мастер импорта и экспорта SQL Server.
Связанные задачи и содержимое
Ниже приведены некоторые основные задачи.
- См. краткий пример работы мастера.
- Ознакомьтесь со снимками экрана. Просмотрите простой пример в разделе Приступая к работе с простым примером мастера импорта и экспорта.
- Посмотрите видео. В этом четырехминутном видео на YouTube демонстрируется работа мастера и объясняется, как с его помощью экспортировать данные в Excel: Использование мастера импорта и экспорта SQL Server для экспорта в Excel.
- Дополнительные сведения о работе мастера.
- Дополнительные сведения о мастере. Обзор мастера см. в статье Импорт и экспорт данных с помощью мастера импорта и экспорта SQL Server.
- Дополнительные сведения о шагах в мастере. Если вам нужны сведения о шагах, выполняемых в мастере, см. в разделе Шаги в мастере импорта и экспорта SQL Server. Каждой странице мастера соответствует отдельная страница документации.
- Сведения о подключении к источникам данных и назначениям. Сведения о подключении к данным см. на соответствующей странице, выбрав ее в списке в разделе Подключение к источникам данных с помощью мастера импорта и экспорта SQL Server. Для каждого распространенного источника данных имеется отдельная страница документации.
Далее
- Импорт и экспорт данных с помощью мастера импорта и экспорта SQL Server
- Приступая к работе с простым примером мастера импорта и экспорта
Обратная связь
Были ли сведения на этой странице полезными?