- •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 лабораторной работе
- •Доп. Ссылки:
Составные имена
Если не указано иное, все ссылки Transact-SQL на имена объектов базы данных могут быть четырехсоставными именами, записываемыми в следующей форме:
server_name .[database_name].[schema_name].object_name
| database_name.[schema_name].object_name
| schema_name.object_name
| object_name
где,
server_name – указывает имя связанного или удаленного сервера, не нужно указывать имя сервера при локальном его использовании;
database_name – указывает имя базы данных SQL Server, если объект хранится на локальном экземпляре SQL Server. Когда объект находится на связанном сервере, аргумент database_name указывает каталог OLE DB.
schema_name – если объект находится в базе данных SQL Server, указывает имя схемы, которая содержит объект. Когда объект находится на связанном сервере, аргумент schema_name указывает имя схемы OLE DB.
object_name – ссылается на имя объекта базы данных.
При ссылке на конкретный объект нет необходимости всякий раз указывать базу данных и схему, но, если имена объектов не уникальны или в базе несколько схем, то рекомендуется указать имя схемы.
Чтобы пропустить промежуточные узлы, для обозначения их позиций используйте точки. В следующей таблице показаны допустимые форматы имен объектов.
Формат ссылки на объект |
Описание |
server . database . schema . object |
Четырехчастное имя. |
server . database .. object |
Имя схемы пропущено. |
server .. schema . object |
Имя базы данных пропущено. |
server ... object |
Имя базы данных и имя схемы пропущены. |
database . schema . object |
Имя сервера пропущено. |
database .. object |
Имя сервера и имя схемы пропущены. |
schema . object |
Имя сервера и имя базы данных пропущены. |
object |
Имена сервера, базы данных и схемы пропущены. |
Операции массового импорта и массового экспорта
SQL Server поддерживает массовый экспорт данных из таблиц SQL Server и массовый импорт данных в таблицы или несекционированные представления SQL Server. Доступны следующие основные методы.
Метод |
Описание |
Импортирует данные |
Экспортирует данные |
программа bcp |
Программа командной строки (Bcp.exe - Bulk Copy Program), массово экспор-тирующая и импортирую-щая данные и создающая файлы форматирования. |
Да |
Да |
инструкция BULK INSERT |
Инструкция Transact-SQL, импортирующая данные непосредственно из файла данных в таблицу базы данных или несекциониро-ванное представление. |
Да |
Нет |
Инструкция INSERT ... SELECT * FROM OPENROWSET(BULK...) |
Инструкция Transact-SQL, использующая поставщик больших наборов строк OPENROWSET для массово-го импорта данных в таб-лицу SQL Server с помощью функции OPENROWSET (BULK…), применяющейся для выборки данных в инструкцию INSERT. |
Да |
Нет |
Операции массового импорта в SQL Server не поддерживают импорт данных из CSV-файла с разделителями-запятыми. Однако на 32-разрядных системах можно импортировать данные CSV-файла в таблицу SQL Server без оптимизации операций массового импорта, используя функцию OPENROWSET с поставщиком OLE DB для Jet. Поставщик Jet обрабатывает текстовые файлы как таблицы со схемой, определенной в файле schema.ini, который расположен в том же каталоге, что и источник данных. Для CSV-данных одним из параметров в файле schema.ini будет «FORMAT=CSVDelimited». Чтобы использовать такое решение, нужно представлять принципы работы поставщика Jet Test IISAMm: знать синтаксис строки соединения, правила использования schema.ini, параметры реестра и т. д. Лучшими источниками для получения таких сведений служат справка Microsoft Access и статьи базы знаний. Дополнительные сведения см. в разделах Инициализация драйвера текстового источника данных, Как использовать распределенный запрос SQL Server 7.0 со связанным сервером для защищенных баз данных Access, Как использовать поставщика Jet OLE DB 4.0 для подключения к базам данных ISAM (на английском языке) и Как открыть файлы с тестом с разделителями с помощью поставщика текста Jet (на английском языке).
