- •I лабораторная работа Тема: Массовый импорт и экспорт данных, обработка ошибок
- •Основные сведения
- •Синтаксические обозначения в Transact-sql (Transact-sql)
- •Составные имена
- •Операции массового импорта и массового экспорта
- •Внутри- и внепроцессная операция
- •Файлы форматирования
- •Обработчик запросов и массовый импорт
- •Вопросы производительности
- •Форматы данных для импорта или экспорта данных
- •Управление пакетами для массового импорта данных
- •Ограничения
- •Вопросы производительности
- •Массовый экспорт или импорт документов sqlxml
- •Преобразование типов из символьного в десятичный
- •Пример импорта числового значения в экспоненциальном представлении
- •Делегирование учетных записей безопасности (Олицетворение)
- •А. Применение вертикальной черты в качестве признака конца столбца при импорте данных из файла
- •Б. Применение аргумента fire_triggers
- •В. Применение перевода строки в качестве признака конца строки
- •Дополнительные примеры
- •Программа bcp
- •Поддержка собственного формата файлов данных
- •Вычисляемые столбцы и столбцы типа timestamp
- •Указание идентификаторов, содержащих пробелы или кавычки
- •Проверка данных
- •Массовый экспорт или импорт документов sqlxml
- •А. Копирование строк таблицы в файл данных (с помощью доверительного соединения)
- •Б. Копирование строк таблицы в файл данных (в смешанном режиме проверки подлинности)
- •В. Копирование данных из файла в таблицу
- •Г. Копирование отдельного столбца в файл данных
- •Д. Копирование отдельной строки в файл данных
- •Е. Копирование данных из запроса в файл данных
- •Ж. Создание файла форматирования в формате, отличном от xml
- •З. Создание xml-файла форматирования
- •И. Применение файла форматирования для выполнения массового импорта данных с помощью программы bcp
- •Применение инструкции openrowset с параметром bulk
- •Массовый импорт данных sqlchar, sqlnchar или sqlbinary
- •Массовый экспорт или импорт документов sqlxml
- •А. Использование функции openrowset совместно с инструкцией select и поставщиком ole db для собственного клиента sql Server
- •Б. Использование поставщика ole db для Jet (Майкрософт)
- •В. Использование функции openrowset и другой таблицы в предложении inner join
- •Г. Использование функции openrowset для массовой вставки данных из файла в столбец varbinary(max)
- •Д. Использование поставщика bulk функции openrowset совместно с файлом форматирования для получения строк из текстового файла
- •Дополнительные примеры
- •Примеры массового импорта и экспорта xml-документов
- •Б. Массовый импорт xml-данных в существующую строку
- •Образец файла данных
- •Пример б
- •В. Массовый импорт xml-данных из файла, содержащего dtd
- •Образец таблицы
- •Образец файла форматирования
- •Пример г
- •Д. Массовый экспорт xml-данных
- •Контрольные вопросы к I лабораторной работе
- •Доп. Ссылки:
Внутри- и внепроцессная операция
Инструкция BULK INSERT и функция OPENROWSET(BULK) в SQL Server выполняются внутри процесса, совместно используя одно и то же адресное пространство памяти. Так как файлы данных открываются процессом SQL Server, данные не копируются между клиентским процессом и процессами SQL Server. Сведения о вопросах безопасности при импорте данных с помощью инструкций BULK INSERT или INSERT ... SELECT * FROM OPENROWSET(BULK...) см. в разделе Массовый импорт данных при помощи инструкции BULK INSERT или OPENROWSET(BULK...).
Команда bcp (Bulk Copy Program), напротив, запускается вне процесса. Чтобы переместить данные через пространства памяти процесса, программа bcp должна использовать межпроцессорный сортировщик данных (Маршалинг). Межпроцессный Маршалинг данных является процессом преобразования параметров вызова метода в поток байтов. Это может значительно увеличить загрузку процессора. Однако так как bcp производит синтаксический анализ и преобразует данные в собственный формат хранения в клиентском процессе, она может освободить процесс SQL Server от обработки и преобразования данных. Поэтому, если имеется ограничение ЦП, производительность массового импорта будет выше при использовании команды bcp на компьютере с несколькими ЦП или на разных компьютерах, чем при использовании команд BULK INSERT или INSERT ... SELECT * FROM OPENROWSET(BULK).
Файлы форматирования
Программа bcp, инструкции BULK INSERT и INSERT ... SELECT * FROM OPENROWSET(BULK...) поддерживают использование специализированного файла под названием файл форматирования для хранения сведений о форматировании для каждого поля в файле данных. Файл форматирования также может содержать сведения о соответствующей таблице SQL Server. Файл форматирования может быть использован с целью предоставления всех сведений о форматировании, необходимых для массового экспорта данных из экземпляра SQL Server и массового импорта данных в него.
Файлы форматирования обеспечивают гибкость при интерпретации данных, существующих в файле данных, в процессе импорта и при форматировании данных в файле данных в процессе экспорта, что исключает необходимость записи специализированного кода для интерпретации данных или изменения формата данных. Например, если массово экспортируются данные для загрузки в приложение, требующее разделенных запятой значений, файлу данных потребуются значения, разделенные запятой. Для вставки запятых в качестве разделителей полей можно использовать файл форматирования.
SQL Server 2005 и более поздние версии поддерживают два типа файлов форматирования: XML и не-XML файлы форматирования. Файлы форматирования в формате, отличном от XML, поддерживаются ранними версиями SQL Server; поддержка XML-файлов форматирования появилась только в SQL Server 2005.
Единственный инструмент, который может сформировать файл форматирования, — это программа bcp. Дополнительные сведения см. в разделе Создание файла форматирования. Дополнительные сведения о файлах форматирования см. в разделе Файлы форматирования для импорта или экспорта данных.
|
В том случае, если файл форматирования не предоставлен в процессе операций массового экспорта или импорта, пользователь может переопределить форматирование по умолчанию в командной строке.
|
