- •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 лабораторной работе
- •Доп. Ссылки:
А. Копирование строк таблицы в файл данных (с помощью доверительного соединения)
Следующий пример иллюстрирует применение
параметра out к таблице
AdventureWorks2008R2.Sales.Currency. В этом примере
создается файл данных с именем Currency.dat
и в него копируются данные таблицы в
символьном формате. Пример предполагает,
что используется проверка подлинности
Windows и существует доверительное соединение
с экземпляром сервера, на котором
запускается команда bcp.
В командной строке введите следующую команду:
bcp AdventureWorks2008R2.Sales.Currency out Currency.dat -T -c
Б. Копирование строк таблицы в файл данных (в смешанном режиме проверки подлинности)
Следующий пример иллюстрирует применение
параметра out к таблице Sales.Currency.
В этом примере создается файл данных с
именем Currency.dat и в него копируются
данные таблицы в символьном формате.
В этом примере предполагается, что используется смешанный режим проверки подлинности. Для указания идентификатора входа необходимо использовать параметр -U. Кроме того, за исключением случаев, когда выполняется соединение с экземпляром, не являющимся экземпляром SQL Server по умолчанию на локальном компьютере, нужно использовать параметр -S, чтобы указать системное имя и (при необходимости) имя экземпляра.
bcp AdventureWorks2008R2.Sales.Currency out Currency.dat -c -U<login_id> -S<server_name\instance_name>
Система предложит ввести пароль.
В. Копирование данных из файла в таблицу
Следующий пример иллюстрирует применение
параметра in с файлом, созданным в
предыдущем примере (Currency.dat). Тем
не менее, сначала в этом примере создается
пустая копия таблицы Sales.Currency,
Sales.Currency2, в которую копируются
данные. Пример предполагает, что
используется проверка подлинности
Windows и существует доверительное соединение
с экземпляром сервера, на котором
запускается команда bcp.
Чтобы создать пустую таблицу, введите следующую команду в редакторе запросов:
USE AdventureWorks2008R2;
GO
SELECT * INTO AdventureWorks2008R2.Sales.Currency2
FROM AdventureWorks2008R2.Sales.Currency WHERE 1=2
Для массового копирования символьных данных в новую таблицу, то есть для импорта данных, введите в командной строке следующую команду:
bcp AdventureWorks2008R2.Sales.Currency2 in Currency.dat -T -c
Чтобы убедиться в успешном выполнении команды, отобразите в редакторе запросов содержимое таблицы и введите:
USE AdventureWorks2008R2;
GO
SELECT * FROM Sales.Currency2;
Г. Копирование отдельного столбца в файл данных
Чтобы выполнить копирование определенного
столбца, можно использовать параметр
queryout. Следующий пример копирует в
файл данных из таблицы Sales.Currency
только столбец Name. Пример
предполагает, что используется проверка
подлинности Windows и существует доверительное
соединение с экземпляром сервера, на
котором запускается команда bcp.
В командной строке Windows введите:
bcp "SELECT Name FROM AdventureWorks2008R2.Sales.Currency" queryout Currency.Name.dat -T -c
Д. Копирование отдельной строки в файл данных
Чтобы выполнить копирование определенной
строки, можно использовать параметр
queryout. Следующий пример копирует
только строку контакта с именем Jarrod
Rana из таблицы Person.Person в файл
данных (Jarrod Rana.dat).Пример
предполагает, что используется проверка
подлинности Windows и существует доверительное
соединение с экземпляром сервера, на
котором запускается команда bcp.
В командной строке Windows введите:
bcp "SELECT * FROM AdventureWorks2008R2.Person.Person WHERE FirstName='Jarrod' AND LastName='Rana' " queryout "Jarrod Rana.dat" -T -c
