- •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 лабораторной работе
- •Доп. Ссылки:
Оглавление
I ЛАБОРАТОРНАЯ РАБОТА 3
Тема: Массовый импорт и экспорт данных, обработка ошибок 3
Основные сведения 3
Синтаксические обозначения в Transact-SQL (Transact-SQL) 3
Составные имена 4
1. Операции массового импорта и массового экспорта 5
Внутри- и внепроцессная операция 7
Файлы форматирования 7
Обработчик запросов и массовый импорт 8
Вопросы производительности 9
2. Форматы данных для импорта или экспорта данных 9
BULK INSERT (Transact-SQL) 10
Управление пакетами для массового импорта данных 11
Ограничения 21
Вопросы производительности 22
Массовый экспорт или импорт документов SQLXML 22
Преобразование типов из символьного в десятичный 23
Делегирование учетных записей безопасности (Олицетворение) 25
А. Применение вертикальной черты в качестве признака конца столбца при импорте данных из файла 26
Б. Применение аргумента FIRE_TRIGGERS 26
В. Применение перевода строки в качестве признака конца строки 26
Дополнительные примеры 27
Программа bcp 27
Поддержка собственного формата файлов данных 42
Вычисляемые столбцы и столбцы типа timestamp 43
Указание идентификаторов, содержащих пробелы или кавычки 43
Проверка данных 43
Массовый экспорт или импорт документов SQLXML 44
А. Копирование строк таблицы в файл данных (с помощью доверительного соединения) 46
Б. Копирование строк таблицы в файл данных (в смешанном режиме проверки подлинности) 47
В. Копирование данных из файла в таблицу 47
Г. Копирование отдельного столбца в файл данных 48
Д. Копирование отдельной строки в файл данных 48
Е. Копирование данных из запроса в файл данных 48
Ж. Создание файла форматирования в формате, отличном от XML 49
З. Создание XML-файла форматирования 49
И. Применение файла форматирования для выполнения массового импорта данных с помощью программы bcp 49
OPENROWSET (Transact-SQL) 50
Применение инструкции OPENROWSET с параметром BULK 58
А. Использование функции OPENROWSET совместно с инструкцией SELECT и поставщиком OLE DB для собственного клиента SQL Server 60
Б. Использование поставщика OLE DB для Jet (Майкрософт) 61
В. Использование функции OPENROWSET и другой таблицы в предложении INNER JOIN 61
Г. Использование функции OPENROWSET для массовой вставки данных из файла в столбец varbinary(max) 62
Д. Использование поставщика BULK функции OPENROWSET совместно с файлом форматирования для получения строк из текстового файла 62
Дополнительные примеры 62
Примеры массового импорта и экспорта XML-документов 63
A. Массовый импорт XML-данных в виде двоичного байтового потока 64
Б. Массовый импорт XML-данных в существующую строку 65
В. Массовый импорт XML-данных из файла, содержащего DTD 66
Г. Указание признаков конца поля явным образом при помощи файла форматирования 67
Д. Массовый экспорт XML-данных 69
Контрольные вопросы к I лабораторной работе 69
Доп. Ссылки: 70
I лабораторная работа Тема: Массовый импорт и экспорт данных, обработка ошибок
Необходимо создать пакет массовой загрузки и выгрузки данных с обработкой ошибок, который должен включать следующее:
Использование BULK INSERT из различных источников,
Использование программы BCP для импорта и экспорта данных,
Использование конструкции TRY . . . CATCH и RAISERROR для обработки ошибок на стороне SQL Server
Использование простого и рекурсивного СТЕ для выборки и модификации данных
Создание и использование символьного файла форматирования,
Создание и использование собственного файла форматирования.
Основные сведения
http://technet.microsoft.com/ru-ru/library/ms175937%28v=sql.105%29.aspx
Microsoft SQL Server позволяет массово импортировать и экспортировать данные (массовая обработка) между таблицей SQL Server и файлом данных. Эта возможность является необходимой для эффективного перемещения данных между SQL Server и разнородными источниками данных. Массовый экспорт означает копирование данных из таблицы SQL Server в файл данных. Массовый импорт означает загрузку данных из файла данных в таблицу SQL Server. Например, можно экспортировать данные из приложения Microsoft Excel в файл данных и затем совершить массовый импорт данных в таблицу SQL Server.
Синтаксические обозначения в Transact-sql (Transact-sql)
В следующей таблице перечислены и описаны соглашения, которые используются в диаграммах синтаксиса в справочнике по Transact-SQL.
Соглашение |
Используется для |
ВЕРХНИЙ РЕГИСТР |
Ключевые слова Transact-SQL. |
курсив |
Пользовательские параметры синтаксиса Transact-SQL. |
полужирный |
Имена баз данных, таблиц, столбцов, индексов, хранимых процедур, программ, типов данных. |
подчеркнутый |
Указывает значение по умолчанию, которое применяется, когда в инструкции пропущено предложение, содержащее подчеркнутое значение. |
| (вертикальная черта) |
Разделяет элементы синтаксиса внутри квадратных или фигурных скобок. Может быть использован только один из разделенных элементов. |
[ ] (квадратные скобки) |
Необязательные элементы синтаксиса. Скобки не входят в синтаксис команды. |
{ } (фигурные скобки) |
Обязательные элементы синтаксиса. Фигурные скобки вводить не следует. |
[,...n] |
Указывает на то, что предшествующий элемент можно повторить n раз. Отдельные вхождения элемента разделяются запятыми. |
[... n] |
Указывает на то, что предшествующий элемент можно повторить n раз. Отдельные вхождения элемента разделяются пробелами. |
; |
Признак конца инструкции Transact-SQL. Хотя точка с запятой не требуется для большинства инструкций в данной версии SQL Server, она понадобится в следующей версии. |
<метка> ::= |
Имя синтаксического блока, которое используется для группирования и маркировки длинных частей синтаксиса или синтаксического блока, который может использоваться в нескольких местах в рамках одной инструкции. Каждое место, в котором может быть использован синтаксический блок, обозначается меткой, заключенной в двойные угловые скобки: <метка>. Набор представляет собой коллекцию выражений, например <набор группирования>; а список — коллекцию наборов, например <составной список элементов>. |
