Freigeben über


SQL Server XML Bulk Load-Objektmodell (SQLXML 4.0)

Das Microsoft SQL Server XML-Massenladen-Objektmodell umfasst das 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 Stream) in einem Massenvorgang.

Eigenschaften

  • BulkLoad
    Gibt an, ob ein Massenladen durchgeführt werden soll. Diese Eigenschaft ist hilfreich, wenn Sie lediglich die Schemas generieren wollen (siehe die folgenden SchemaGen-, SGDropTables- und SGUseID-Eigenschaften), nicht aber ein Massenladen. 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).

    HinweisHinweis

    Um diese Eigenschaft auf 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
    Kennzeichnet ein vorhandenes Verbindungsobjekt (zum Beispiel das ADO- oder ICommand-Befehlsobjekt), das beim XML-Massenladen verwendet werden sollte. Anstatt eine Verbindungszeichenfolge mit der ConnectionString-Eigenschaft anzugeben, können Sie die ConnectionCommand-Eigenschaft verwenden. Die Transaction-Eigenschaft muss auf TRUE gesetzt sein, wenn Sie ConnectionCommand verwenden.

    Wenn Sie sowohl die ConnectionString-Eigenschaft als auch die ConnectionCommand-Eigenschaft verwenden, wird beim XML-Massenladen auf die zuletzt angegebene Eigenschaft zurückgegriffen.

    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-Eigenschaft als auch die ConnectionCommand-Eigenschaft verwenden, wird beim XML-Massenladen auf die zuletzt angegebene Eigenschaft zurückgegriffen.

    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.

    HinweisHinweis

    Um diese Eigenschaft auf 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 gesetzt ist und versucht wird, einen Datensatz mit doppelten Werten 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 gesetzt ist, wird für jeden in die Tabelle eingesetzten Datensatz eine COMMIT-Anweisung ausgegeben. Dies verlangsamt die Leistung. Die Eigenschaft kann nur dann auf TRUE gesetzt werden, wenn die Transaction-Eigenschaft auf FALSE gesetzt 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 der Massenladevorgang eine Spalte betrifft, bei der es sich um einen Fremdschlüssel handelt, der auf eine Identitätsspalte verweist, in der wiederum SQL Server-generierte Werte gespeichert sind, werden beim Massenladen diese Identitätswerte entsprechend in die Fremdschlüsselspalte propagiert.

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

    HinweisHinweis

    Um diese Eigenschaft auf 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 in der Datenbank bereits eine oder mehrere Tabellen vorhanden sind, bestimmt die SGDropTables-Eigenschaft, ob diese bereits vorhandenen Tabellen gelöscht oder neu erstellt werden.

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

    Wenn Sie die SchemaGen-Eigenschaft auf TRUE setzen, führt das XML-Massenladen Folgendes durch:

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

    • Gibt für sämtliche Spalten, die mithilfe von sql:overflow-field angegeben wurden, Überlaufdaten imxml-Datentyp-Format zurück.

  • SGDropTables
    Gibt an, ob vorhandene Tabellen gelöscht und neu erstellt werden sollen. Sie können diese Eigenschaft verwenden, wenn die SchemaGen-Eigenschaft auf TRUE gesetzt ist. Wenn SGDropTables auf FALSE gesetzt 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 gekennzeichnet ist, während des Erstellens der Tabelle zum Erstellen einer PRIMARY KEY-Einschränkung verwendet werden kann. Verwenden Sie diese Eigenschaft, wenn die SchemaGen-Eigenschaft auf TRUE gesetzt ist. Wenn SGUseID auf TRUE gesetzt ist, verwendet das SchemaGen-Dienstprogramm ein Attribut, bei dem dt:type="id" als Primärschlüsselspalte angegeben ist. Beim Erstellen der Tabelle wird die entsprechende PRIMARY KEY-Einschränkung hinzugefügt.

    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 hilfreich, wenn die Transaktionseigenschaft auf TRUE gesetzt ist.) Das beim XML-Massenladen verwendete SQL Server-Konto muss auf diesen Pfad zugreifen können. Wenn diese Eigenschaft nicht gesetzt ist, werden die Temporärdateien in dem in der Umgebungsvariable TEMP angegebenen Verzeichnis gespeichert.

  • Transaction
    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 hilfreich, wenn Transaction auf TRUE gesetzt ist.

    HinweisHinweis

    Wenn Sie Binärdaten laden (etwa die Datentypen bin.hex, bin.base64 XML in die binären SQL Server-Bilddatentypen), muss die Transaction-Eigenschaft auf FALSE gesetzt sein.

    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.