SQL Server XML Bulk Load-Objektmodell (SQLXML 4.0)

Gilt für:SQL ServerAzure SQL-Datenbank

Das Microsoft SQL Server XML Bulk Load-Objektmodell besteht aus dem SQLXMLBulkLoad-Objekt. Dieses Objekt unterstützt die folgenden Methoden und Eigenschaften.

Methoden

Execute
Lädt die Daten mithilfe der als Parameter bereitgestellten Schema- und Datendatei (oder Datenstrom) in einem Massenvorgang.

Eigenschaften

BulkLoad
Gibt an, ob ein Massenladen durchgeführt werden soll. Diese Eigenschaft ist nützlich, wenn Sie nur die Schemas generieren möchten (siehe die folgenden Eigenschaften SchemaGen, SGDropTables und SGUseID). Hierbei handelt es sich um eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE festgelegt ist, wird das XML-Massenladen ausgeführt. Wenn sie auf FALSE festgelegt ist, wird das XML-Massenladen nicht ausgeführt.

Der Standardwert ist TRUE.

CheckConstraints
Gibt an, ob die Einschränkungen (etwa Einschränkungen aufgrund der Primär-/Fremdschlüsselbeziehung zwischen Spalten), die für die jeweilige Spalte angegeben sind, überprüft werden sollen, sobald beim XML-Massenladen Daten in die Spalten eingefügt werden. Hierbei handelt es sich um eine boolesche Eigenschaft.

Wenn die Eigenschaft auf TRUE gesetzt ist, werden mit XML-Massenladen die Einschränkungen für jeden eingefügten Wert überprüft (was bedeutet, dass jede verletzte Einschränkung zu einem Fehler führt).

Hinweis

Um diese Eigenschaft als FALSE zu belassen, müssen Sie über ALTER TABLE-Berechtigungen für Zieltabellen verfügen. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL).

Der Standardwert ist FALSE. Wenn sie auf FALSE gesetzt ist, werden die Einschränkungen während des Einfügens ignoriert. In der aktuellen Implementierung müssen Sie die Tabellen in der Reihenfolge der Primär-/Fremdschlüsselbeziehungen im Zuordnungsschema definieren. Eine Tabelle mit einem Primärschlüssel muss also vor der entsprechenden Tabelle mit dem Fremdschlüssel definiert werden; anderenfalls schlägt das XML-Massenladen fehl.

Hinweis: Wenn ID-Propagierung erfolgt, kommt diese Option nicht zur Anwendung, und Einschränkungen werden weiter überprüft. Dies ist der Fall, wenn KeepIdentity=False gilt und eine Beziehung definiert ist, in der es sich beim übergeordneten Element um ein Identitätsfeld handelt und der Wert bei der Generierung an das untergeordnete Element übertragen wird.

ConnectionCommand
Identifiziert ein vorhandenes Verbindungsobjekt (z. B. das ADO- oder ICommand-Befehlsobjekt), das XML Bulk Load verwenden soll. Sie können die ConnectionCommand-Eigenschaft verwenden, anstatt eine Verbindungszeichenfolge mit der ConnectionString-Eigenschaft anzugeben. Die Transaction-Eigenschaft muss auf TRUE festgelegt werden, wenn Sie ConnectionCommand verwenden.

Wenn Sie sowohl die ConnectionString- als auch die ConnectionCommand-Eigenschaft verwenden, verwendet XML Bulk Load die zuletzt angegebene Eigenschaft.

Der Standardwert ist NULL.

ConnectionString
Kennzeichnet die OLE DB-Verbindungszeichenfolge mit den Informationen, die notwendig sind, um eine Verbindung zu einer Instanz der Datenbank herzustellen. Wenn Sie sowohl die ConnectionString- als auch die ConnectionCommand-Eigenschaft verwenden, verwendet XML Bulk Load die zuletzt angegebene Eigenschaft.

Der Standardwert ist NULL.

ErrorLogFile
Gibt den Dateinamen an, in dem Fehler und Meldungen protokolliert werden. Der Standardwert ist eine leere Zeichenfolge; in diesem Fall erfolgt keine Protokollierung.

FireTriggers
Gibt an, ob auf Zieltabellen definierte Trigger während des Massenladevorgangs ausgelöst werden sollen. Der Standardwert lautet FALSE.

Wenn dieser Wert auf TRUE gesetzt ist, werden Trigger während der Einfügevorgänge normal ausgelöst.

Hinweis

Um diese Eigenschaft als FALSE zu belassen, müssen Sie über ALTER TABLE-Berechtigungen für Zieltabellen verfügen. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL).

Hinweis: Wenn ID-Propagierung erfolgt, kommt diese Option nicht zur Anwendung, und Trigger werden weiter ausgelöst. Dies ist der Fall, wenn KeepIdentity=False gilt und eine Beziehung definiert ist, in der es sich beim übergeordneten Element um ein Identitätsfeld handelt und der Wert bei der Generierung an das untergeordnete Element übertragen wird.

ForceTableLock
Gibt an, ob die Tabellen, in die beim XML-Massenladen Daten kopiert werden, während des Massenladens gesperrt sein sollen. Hierbei handelt es sich um eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE gesetzt ist, werden während des Massenladens Tabellensperren eingerichtet. Wenn der Wert auf FALSE gesetzt ist, wird immer dann eine Tabellensperre eingerichtet, sobald ein Datensatz in eine Tabelle eingefügt wird.

Der Standardwert ist FALSE.

IgnoreDuplicateKeys
Gibt an, was geschieht, wenn versucht wird, doppelte Werte in einer Schlüsselspalte einzufügen. Wenn diese Eigenschaft auf TRUE festgelegt ist und versucht wird, einen Datensatz mit einem doppelten Wert in einer Schlüsselspalte einzufügen, fügt SQL Server diesen Datensatz nicht ein. Stattdessen wird der nachfolgende Datensatz eingefügt; dadurch schlägt der Massenladevorgang nicht fehl. Wenn diese Eigenschaft auf FALSE gesetzt ist und versucht wird, doppelte Werte in einer Schlüsselspalte einzufügen, schlägt der Massenladevorgang fehl.

Wenn die IgnoreDuplicateKeys-Eigenschaft auf TRUE festgelegt ist, wird für jeden in die Tabelle eingefügten Datensatz eine COMMIT-Anweisung ausgegeben. Dies verlangsamt die Leistung. Die Eigenschaft kann nur auf TRUE festgelegt werden, wenn die Transaction-Eigenschaft auf FALSE festgelegt ist, da das Transaktionsverhalten mithilfe von Dateien implementiert wird.

Der Standardwert ist FALSE.

KeepIdentity
Gibt an, wie mit den Werten für eine Identitätsspalte in der Quelldatei verfahren wird. Hierbei handelt es sich um eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE gesetzt ist, werden der Identitätsspalte die in der Quelldatei angegebenen Werte zugewiesen. Wenn die Eigenschaft auf FALSE gesetzt ist, werden die in der Quelldatei für die Identitätsspalte angegebenen Werte beim Massenladen ignoriert. In diesem Fall weist SQL Server der Identitätsspalte einen Wert zu.

Wenn das Massenladen eine Spalte umfasst, bei der es sich um einen Fremdschlüssel handelt, der auf eine Identitätsspalte verweist, in der SQL Server generierten Werte gespeichert werden, verteilt Bulk Load diese Identitätswerte entsprechend an die Fremdschlüsselspalte.

Der Wert dieser Eigenschaft gilt für alle vom Massenladen betroffene Spalten. Der Standardwert ist TRUE.

Hinweis

Um diese Eigenschaft als TRUE zu belassen, müssen Sie über ALTER TABLE-Berechtigungen für Zieltabellen verfügen. Andernfalls muss sie auf FALSE gesetzt werden. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL).

KeepNulls
Gibt an, welcher Wert für eine Spalte verwendet wird, in deren XML-Dokument das entsprechende Attribut oder untergeordnete Element fehlt. Hierbei handelt es sich um eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE gesetzt ist, wird der Spalte der Wert Null zugewiesen. Es wird nicht der gegebenenfalls auf dem Server gesetzte Standardwert der Spalte zugewiesen. Der Wert dieser Eigenschaft gilt für alle vom Massenladen betroffene Spalten.

Der Standardwert ist FALSE.

Schemagen
Gibt an, ob die erforderlichen Tabellen vor dem Ausführen eines Massenladevorgangs erstellt werden sollen. Hierbei handelt es sich um eine boolesche Eigenschaft. Wenn diese Eigenschaft auf TRUE gesetzt ist, werden die im Zuordnungsschema angegebenen Tabellen erstellt (die Datenbank muss vorhanden sein). Wenn mindestens eine der Tabellen bereits in der Datenbank vorhanden ist, bestimmt die SGDropTables-Eigenschaft, ob diese bereits vorhandenen Tabellen gelöscht und neu erstellt werden sollen.

Der Standardwert für die SchemaGen-Eigenschaft ist FALSE. SchemaGen erstellt keine PRIMARY KEY-Einschränkungen für die neu erstellten Tabellen. SchemaGen erstellt jedoch FOREIGN KEY-Einschränkungen in der Datenbank, wenn im Zuordnungsschema übereinstimmende Anmerkungen zu sql:relationship und sql:key-fields gefunden werden können und das Schlüsselfeld aus einer einzelnen Spalte besteht.

Beachten Sie, dass beim Festlegen der SchemaGen-Eigenschaft auf TRUE das XML-Massenladen die folgenden Aktionen ausführt:

  • Erstellt die notwendigen Tabellen aus dem Element und den Attributnamen. Daher ist es wichtig, dass Sie keine SQL Server reservierten Wörter für Element- und Attributnamen im Schema verwenden.

  • Gibt Überlaufdaten für jede Spalte zurück, die mit sql :overflow-field im xml-Datentypformat angegeben wurde.

SGDropTables
Gibt an, ob vorhandene Tabellen gelöscht und neu erstellt werden sollen. Sie verwenden diese Eigenschaft, wenn die SchemaGen-Eigenschaft auf TRUE festgelegt ist. Wenn SGDropTables FALSE ist, werden die vorhandenen Tabellen beibehalten. Wenn diese Eigenschaft auf TRUE gesetzt ist, werden die vorhandenen Tabellen gelöscht und neu erstellt.

Der Standardwert ist FALSE.

SGUseID
Gibt an, ob das Attribut im Zuordnungsschema, das als ID-Typ identifiziert ist, beim Erstellen einer PRIMARY KEY-Einschränkung beim Erstellen der Tabelle verwendet werden kann. Verwenden Sie diese Eigenschaft, wenn die SchemaGen-Eigenschaft auf TRUE festgelegt ist. Wenn SGUseID TRUE ist, verwendet das SchemaGen-Hilfsprogramm ein Attribut, für das dt:type="id" als Primärschlüsselspalte angegeben wird, und fügt beim Erstellen der Tabelle die entsprechende PRIMARY KEY-Einschränkung hinzu.

Der Standardwert ist FALSE.

TempFilePath
Gibt den Dateipfad an, wo beim XML-Massenladen die temporären Dateien für ein transaktives Massenladen erstellt werden. (Diese Eigenschaft ist nur nützlich, wenn die Transaction-Eigenschaft auf TRUE festgelegt ist.) Sie müssen sicherstellen, dass das SQL Server Konto, das für das XML-Massenladen verwendet wird, Zugriff auf diesen Pfad hat. Wenn diese Eigenschaft nicht gesetzt ist, werden die Temporärdateien in dem in der Umgebungsvariable TEMP angegebenen Verzeichnis gespeichert.

Transaktion
Gibt an, ob das Massenladen als Transaktion erfolgen soll. Bei einem Fehlschlagen des Massenspeicherns ist ein Rollback gewährleistet. Hierbei handelt es sich um eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE gesetzt ist, erfolgt das Massenladen in einem Transaktionskontext. Die TempFilePath-Eigenschaft ist nur nützlich, wenn Transaction auf TRUE festgelegt ist.

Hinweis

Wenn Sie Binärdaten (z. B. die XML-Datentypen bin.hex, bin.base64 in die Datentypen Binärdatei, Bild SQL Server) laden, muss die Transaction-Eigenschaft auf FALSE festgelegt werden.

Der Standardwert ist FALSE.

XMLFragment
Gibt an, ob es sich bei den Quelldaten um ein XML-Fragment handelt. Ein XML-Fragment ist ein XML-Dokument, dem das Einzelelement der obersten Ebene (Stammelement) fehlt. Hierbei handelt es sich um eine boolesche Eigenschaft. Diese Eigenschaft muss auf TRUE gesetzt sein, wenn die Quelldatei aus einem XML-Fragment besteht.

Der Standardwert ist FALSE.