Поделиться через


Объектная модель массовой загрузки SQL Server XML (SQLXML 4.0)

Объектная модель массовой загрузки MICROSOFT SQL Server XML состоит из объекта SQLXMLBulkLoad. Этот объект поддерживает следующие методы и свойства.

Методы

Выполнить
Массовая загрузка данных с помощью файла схемы и файла данных (или потока), предоставляемых в качестве параметров.

Свойства

BulkLoad
Указывает, следует ли выполнять массовую загрузку. Это свойство полезно, если вы хотите создать только схемы (см. свойства SchemaGen, SGDropTables и SGUseID, которые следуют) и не выполняют массовую загрузку. Это логическое свойство. Если для свойства задано значение TRUE, выполняется массовая загрузка XML. Если задано значение FALSE, массовая загрузка XML не выполняется.

Значение по умолчанию — TRUE.

CheckConstraints
Указывает, должны ли ограничения (например, ограничения из-за связи первичного ключа или внешнего ключа между столбцами), указанные в столбце, проверяться, когда массовая загрузка XML вставляет данные в столбцы. Это логическое свойство.

Если для свойства задано значение TRUE, xml Bulk Load проверяет ограничения для каждого вставленного значения (это означает, что нарушение ограничений приводит к ошибке).

Замечание

Чтобы оставить это свойство как FALSE, необходимо иметь разрешения ALTER TABLE в целевых таблицах. Дополнительные сведения см. в разделе ALTER TABLE (Transact-SQL).

Значение по умолчанию — FALSE. Если задано значение FALSE, массовая загрузка XML игнорирует ограничения во время операции вставки. В текущей реализации необходимо определить таблицы в порядке первичных и внешних связей ключей в схеме сопоставления. То есть таблица с первичным ключом должна быть определена перед соответствующей таблицей с внешним ключом; В противном случае массовая загрузка XML завершается ошибкой.

Обратите внимание, что если распространение идентификаторов выполняется, этот параметр не применяется и проверка ограничений будет оставлена. Это происходит, когда KeepIdentity=False и существует связь, в которой родитель является полем удостоверения, и значение присваивается дочернему элементу, как он создается.

ConnectionCommand
Определяет существующий объект подключения (например, объект команды ADO или ICommand), который должен использовать массовая загрузка XML. Свойство ConnectionCommand можно использовать вместо указания строки подключения со свойством ConnectionString. Свойство Transaction должно иметь значение TRUE, если используется ConnectionCommand.

При использовании свойств ConnectionString и ConnectionCommand xml Bulk Load использует последнее указанное свойство.

Значение по умолчанию — NULL.

ConnectionString
Определяет строку подключения OLE DB, которая предоставляет необходимые сведения для установления подключения к экземпляру базы данных. При использовании свойств ConnectionString и ConnectionCommand xml Bulk Load использует последнее указанное свойство.

Значение по умолчанию — NULL.

ErrorLogFile
Указывает имя файла, в который журналы и сообщения массовой загрузки XML. По умолчанию используется пустая строка, в этом случае ведение журнала не выполняется.

FireTriggers
Указывает, должны ли триггеры, определенные в целевых таблицах, запускаться во время операции массовой загрузки. Значение по умолчанию — FALSE.

Если задано значение TRUE, триггеры будут работать как обычные во время операций вставки.

Замечание

Чтобы оставить это свойство как FALSE, необходимо иметь разрешения ALTER TABLE в целевых таблицах. Дополнительные сведения см. в разделе ALTER TABLE (Transact-SQL).

Обратите внимание, что если выполняется распространение идентификаторов, этот параметр не применяется и триггеры будут оставлены. Это происходит, когда KeepIdentity=False и существует связь, в которой родитель является полем удостоверения, и значение присваивается дочернему элементу, как он создается.

ForceTableLock
Указывает, должны ли таблицы, в которые массовая загрузка XML копирует данные в течение длительности массовой загрузки. Это логическое свойство. Если для свойства задано значение TRUE, массовая загрузка XML получает блокировки таблицы в течение длительности массовой загрузки. Если для него задано значение FALSE, массовая загрузка XML получает блокировку таблицы при каждом вставке записи в таблицу.

Значение по умолчанию — FALSE.

IgnoreDuplicateKeys
Указывает, что делать, если предпринята попытка вставить повторяющиеся значения в ключевом столбце. Если это свойство имеет значение TRUE, а попытка вставить запись с повторяющимся значением в ключевом столбце, SQL Server не вставляет эту запись. Но он вставляет следующую запись; Таким образом, операция массового загрузки не завершается ошибкой. Если для этого свойства задано значение FALSE, массовая загрузка завершается ошибкой при попытке вставить повторяющееся значение в ключевом столбце.

Если для свойства IgnoreDuplicateKeys задано значение TRUE, инструкция COMMIT выдается для каждой записи, вставленной в таблицу. Это замедляет производительность. Свойство может иметь значение TRUE, только если свойству Transaction присвоено значение FALSE, так как поведение транзакций реализуется с помощью файлов.

Значение по умолчанию — FALSE.

KeepIdentity
Указывает, как справиться со значениями столбца типа identity в исходном файле. Это логическое свойство. Если для свойства задано значение TRUE, массовая загрузка XML назначает значения, указанные в исходном файле столбцу удостоверений. Если для свойства задано значение FALSE, операция массового загрузки игнорирует значения столбцов удостоверений, указанные в источнике. В этом случае SQL Server назначает значение столбцу удостоверений.

Если массовая загрузка включает столбец, являющийся внешним ключом, ссылающимся на столбец удостоверений, в котором хранятся созданные значения SQL Server, массовая загрузка соответствующим образом распространяет эти значения удостоверений в столбец внешнего ключа.

Значение этого свойства применяется ко всем столбцам, участвующим в массовой загрузке. Значение по умолчанию — TRUE.

Замечание

Чтобы оставить это свойство как TRUE, необходимо иметь разрешения ALTER TABLE в целевых таблицах. В противном случае оно должно иметь значение FALSE. Дополнительные сведения см. в разделе ALTER TABLE (Transact-SQL).

KeepNulls
Указывает, какое значение используется для столбца, который отсутствует соответствующий атрибут или дочерний элемент в XML-документе. Это логическое свойство. Если для свойства задано значение TRUE, массовая загрузка XML присваивает столбцу значение NULL. Он не назначает значение столбца по умолчанию, если таковой имеется, как задано на сервере. Значение этого свойства применяется ко всем столбцам, участвующим в массовой загрузке.

Значение по умолчанию — FALSE.

SchemaGen
Указывает, следует ли создавать необходимые таблицы перед выполнением операции массовой загрузки. Это логическое свойство. Если это свойство имеет значение TRUE, создаются таблицы, определенные в схеме сопоставления (база данных должна существовать). Если одна или несколько таблиц уже существуют в базе данных, свойство SGDropTables определяет, следует ли удалять и повторно создавать эти таблицы.

Значением по умолчанию для свойства SchemaGen является FALSE. SchemaGen не создает ограничения PRIMARY KEY для только что созданных таблиц. Однако SchemaGen создает ограничения FOREIGN KEY в базе данных, если он может найти сопоставления sql:relationship и заметки в схеме сопоставления и sql:key-fields если ключевое поле состоит из одного столбца.

Обратите внимание, что если для свойства SchemaGen задано значение TRUE, массовая загрузка XML выполняет следующие действия:

  • Создает необходимые таблицы из имен элементов и атрибутов. Поэтому важно не использовать зарезервированные слова SQL Server для имен элементов и атрибутов в схеме.

  • Возвращает данные переполнения для любого столбца, указанного с помощью поля sql:overflow-field в формате xml-типа данных .

SGDropTables
Указывает, следует ли удалять и повторно создавать существующие таблицы. Это свойство используется, если для свойства SchemaGen задано значение TRUE. Если SGDropTable имеет значение FALSE, существующие таблицы сохраняются. Если это свойство равно TRUE, существующие таблицы удаляются и создаются повторно.

Значение по умолчанию — FALSE.

SGUseID
Указывает, можно ли использовать атрибут в схеме сопоставления, определяемой как id тип, при создании ограничения PRIMARY KEY при создании таблицы. Используйте это свойство, если для свойства SchemaGen задано значение TRUE. Если SGUseID имеет значение TRUE, программа SchemaGen использует атрибут, для которого dt:type="id" указывается в качестве столбца первичного ключа и добавляет соответствующее ограничение PRIMARY KEY при создании таблицы.

Значение по умолчанию — FALSE.

TempFilePath
Указывает путь к файлу, в котором массовая загрузка XML создает временные файлы для транзакций массовой загрузки. (Это свойство полезно только в том случае, если свойству Transaction присвоено значение TRUE.) Необходимо убедиться, что учетная запись SQL Server, используемая для массовой загрузки XML, имеет доступ к этому пути. Если это свойство не задано, XML Bulk Load сохраняет временные файлы в расположении, указанном в переменной среды TEMP.

Транзакция
Указывает, следует ли выполнять массовую загрузку как транзакцию, в этом случае откат гарантируется, если массовая загрузка завершается сбоем. Это логическое свойство. Если для свойства задано значение TRUE, массовая загрузка выполняется в контексте транзакций. Свойство TempFilePath полезно только в том случае, если для транзакции задано значение TRUE.

Замечание

Если вы загружаете двоичные данные (например, bin.hex, bin.base64 XML-типы данных в двоичные, типы данных SQL Server образа), свойство Transaction должно иметь значение FALSE.

Значение по умолчанию — FALSE.

XMLFragment
Указывает, является ли исходные данные фрагментом XML. Фрагмент XML — это XML-документ без одного элемента верхнего уровня (корневого). Это логическое свойство. Это свойство должно иметь значение TRUE, если исходный файл состоит из фрагмента XML.

Значение по умолчанию — FALSE.