Массовая вставка данных XML в SQL Server - PullRequest
2 голосов
/ 15 февраля 2010

Используя приведенную ниже структуру таблицы, я бы создал массовую вставку bcp, которая обрабатывает данные XML Важно, чтобы это запускалось из командной строки.

CREATE TABLE [dbo].[MyTable](
[Id] [uniqueidentifier] NOT NULL DEFAULT (newid()),
[MyXmlField] [xml] NULL

Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 15 февраля 2010

Основной синтаксис для использования bcp:

bcp <table_name> <direction> <file_name> <options> 

Где аргументы принимают следующие значения:

  • table_name - полное имястол.Например, вы можете использовать inventory.dbo.fruits для вставки записей в таблицу фруктов, принадлежащую владельцу базы данных, в базу данных инвентаризации.
  • direction указывает, хотите ли вы импортировать («В» направлении) или данные экспорта («в направлении»).
  • имя_файла - полный путь к файлу.Например, вы можете импортировать файл C: \ fruit \ inventory.txt.
  • , опции позволяют указать параметры для массовой операции.Например, вы можете указать максимально допустимое количество ошибок с опцией –m.Вы также можете использовать опцию –x, чтобы указать формат файла XML.Обратитесь к документации bcp Microsoft для получения полного списка.

Потребуется дополнительная информация, чтобы узнать, какие переключатели использовать, но это должно быть что-то вроде

bcp database.dbo.MyTable in "C:\folder\xmlfile.xml" -c -T

-c Выполняет операцию с использованием символьного типа данных.
-T Указывает, что утилита bcp подключается к SQL Server через доверенное соединение с использованием встроенной защиты.

Также здесь есть Утилита bcp от Microsoft , которая должна помочь вам узнать, какие переключатели использовать.

0 голосов
/ 15 февраля 2010

используйте ключ -N, если ваш файл содержит символы Юникода.

-N: выполняет операцию массового копирования с использованием собственных типов данных (базы данных) данных для нехарактерных данных и символов Unicode для символьных данных. Эта опция предлагает более высокую производительность, альтернативную опции -w, и предназначена для передачи данных из одного экземпляра SQL Server в другой с использованием файла данных. Это не подсказывает для каждого поля. Используйте эту опцию, когда вы переносите данные, которые содержат расширенные символы ANSI, и вы хотите воспользоваться производительностью основного режима.

...