- •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 лабораторной работе
- •Доп. Ссылки:
Массовый экспорт или импорт документов sqlxml
Чтобы выполнить массовый экспорт или импорт SQLXML-данных используйте один из следующих типов данных в файле форматирования:
Тип данных |
Эффект |
SQLCHAR или SQLVARYCHAR |
Данные отправляются в кодовой странице клиента или кодовой странице, определенной параметрами сортировки. |
SQLNCHAR или SQLNVARCHAR |
Данные отправляются в Юникоде. |
SQLBINARY или SQLVARYBIN |
Данные отправляются без преобразования. |
Разрешения
Разрешения функции OPENROWSET определяются разрешениями имени пользователя, переданного поставщику OLE DB. Чтобы использовать параметр BULK, необходимо разрешение ADMINISTER BULK OPERATIONS.
Примеры
А. Использование функции openrowset совместно с инструкцией select и поставщиком ole db для собственного клиента sql Server
В следующем примере для доступа к таблице
HumanResources.Department в базе данных База
данных AdventureWorks2008R2 на удаленном сервере
Seattle1 используется поставщик OLE
DB для собственного клиента SQL Server. (При
использовании SQLNCLI SQL Server выполнит
перенаправление к последней версии
поставщика OLE DB для собственного клиента
SQL Server.) Инструкция SELECT используется
для определения возвращаемого набора
строк. Строка поставщика содержит
ключевые слова Server и
Trusted_Connection. Эти ключевые слова
распознаются поставщиком OLE DB для
собственного клиента SQL Server.
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks2008R2.HumanResources.Department
ORDER BY GroupName, Name') AS a;
Б. Использование поставщика ole db для Jet (Майкрософт)
В следующем примере для доступа к таблице
Customers в базе данных Microsoft Access
Northwind используется поставщик
OLE DB для Jet (Майкрософт).
Примечание |
В этом примере предполагается, что Access установлен. Чтобы выполнить этот пример, необходимо установить базу данных Northwind. Дополнительные сведения об установке базы данных Northwind см. в разделе Загрузка образцов баз данных Northwind и pubs. |
SELECT CustomerID, CompanyName
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';
'admin';'',Customers);
GO
В. Использование функции openrowset и другой таблицы в предложении inner join
В следующем примере производится выборка
всех данных из таблицы Customers базы
данных Northwind локального экземпляра
SQL Server и из таблицы Orders из базы
данных Access Northwind, хранящейся на
том же компьютере.
Примечание |
В этом примере предполагается, что Access установлен. Чтобы выполнить этот пример, необходимо установить базу данных Northwind. Дополнительные сведения об установке базы данных Northwind см. в разделе Загрузка образцов баз данных Northwind и pubs. |
USE Northwind ;
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';'admin';'', Orders)
AS o
ON c.CustomerID = o.CustomerID ;
GO
Г. Использование функции openrowset для массовой вставки данных из файла в столбец varbinary(max)
В следующем примере создается небольшая
таблица для демонстрационных целей и
вставляются данные из файла с именем
Text1.txt, расположенного в корневом
каталоге диска C:, в столбец
varbinary(max).
USE AdventureWorks2008R2;
GO
CREATE TABLE myTable(FileName nvarchar(60),
FileType nvarchar(60), Document varbinary(max));
GO
INSERT INTO myTable(FileName, FileType, Document)
SELECT 'Text1.txt' AS FileName,
'.txt' AS FileType,
* FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document;
GO
