Freigeben über


SQL Server XML Bulk Load Object Model (SQLXML 4.0)

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

Methodik

Ausführen
Massenladevorgänge der Daten mithilfe der Schemadatei und der Datendatei (oder des Datenstroms), die als Parameter bereitgestellt werden.

Eigenschaften

BulkLoad
Gibt an, ob eine Massenlast ausgeführt werden soll. Diese Eigenschaft ist nützlich, wenn Sie nur die Schemas generieren möchten (siehe die folgenden SchemaGen-, SGDropTables- und SGUseID-Eigenschaften) und keine Massenlast. Dies ist eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE festgelegt ist, wird die XML-Massenlast ausgeführt. Wenn sie auf FALSE festgelegt ist, wird die XML-Massenlast nicht ausgeführt.

Der Standardwert ist TRUE.

CheckConstraints
Gibt an, ob die Einschränkungen (z. B. Einschränkungen aufgrund der Primärschlüssel-/Fremdschlüsselbeziehung zwischen Spalten) überprüft werden sollen, die in der Spalte angegeben werden sollen, wenn xml-Massenlast Daten in die Spalten einfügt. Dies ist eine boolesche Eigenschaft.

Wenn die Eigenschaft auf TRUE festgelegt ist, überprüft XML Bulk Load die Einschränkungen für jeden eingefügten Wert (was bedeutet, dass eine Einschränkungsverletzung 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).

Die Standardeinstellung lautet FALSE. Wenn sie auf FALSE festgelegt ist, ignoriert XML-Massenladevorgang die Einschränkungen während eines Einfügevorgangs. In der aktuellen Implementierung müssen Sie die Tabellen in der Reihenfolge der Primärschlüssel- und Fremdschlüsselbeziehungen im Zuordnungsschema definieren. Das heißt, eine Tabelle mit einem Primärschlüssel muss vor der entsprechenden Tabelle mit dem Fremdschlüssel definiert werden; andernfalls schlägt die XML-Massenladevorgang fehl.

Beachten Sie, dass, wenn die ID-Verteilung erfolgt, diese Option nicht angewendet wird, und die Einschränkungsprüfung bleibt erhalten. Dies tritt auf, wenn KeepIdentity=False eine Beziehung definiert ist, bei der das übergeordnete Element ein Identitätsfeld ist und der Wert dem untergeordneten Element zugewiesen wird, während es generiert wird.

ConnectionCommand
Identifies an existing connection object (for example, the ADO or ICommand command object), that XML Bulk Load should use. 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-Massenladevorgang die letzte angegebene Eigenschaft.

Der Standardwert ist NULL.

ConnectionString
Identifiziert die OLE DB-Verbindungszeichenfolge, die die erforderlichen Informationen zum Herstellen einer Verbindung mit einer Instanz der Datenbank bereitstellt. Wenn Sie sowohl die ConnectionString- als auch die ConnectionCommand-Eigenschaft verwenden, verwendet XML-Massenladevorgang die letzte angegebene Eigenschaft.

Der Standardwert ist NULL.

ErrorLogFile
Gibt den Dateinamen an, in dem fehler und Meldungen des XML-Massenladevorgangs protokolliert werden. Der Standardwert ist eine leere Zeichenfolge, in diesem Fall findet keine Protokollierung statt.

FireTriggers
Gibt an, ob für Zieltabellen definierte Trigger während des Massenladevorgangs ausgelöst werden sollen. Der Standardwert ist FALSE.

Wenn dieser Wert auf TRUE festgelegt ist, werden Trigger während der Einfügevorgänge wie 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).

Beachten Sie, dass, wenn die ID-Verteilung erfolgt, diese Option nicht angewendet wird und Trigger verbleiben. Dies tritt auf, wenn KeepIdentity=False eine Beziehung definiert ist, bei der das übergeordnete Element ein Identitätsfeld ist und der Wert dem untergeordneten Element zugewiesen wird, während es generiert wird.

ForceTableLock
Gibt an, ob die Tabellen, in die XML-Massenladedaten kopiert werden sollen, für die Dauer des Massenladevorgangs gesperrt werden sollen. Dies ist eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE festgelegt ist, erhält XML Bulk Load Tabellensperren für die Dauer des Massenladevorgangs. Wenn sie auf FALSE festgelegt ist, erhält XML Bulk Load jedes Mal, wenn ein Datensatz in eine Tabelle eingefügt wird, eine Tabellensperre.

Die Standardeinstellung lautet FALSE.

IgnoreDuplicateKeys
Gibt an, was zu tun ist, wenn versucht wird, doppelte Werte in eine Schlüsselspalte einzufügen. Wenn diese Eigenschaft auf TRUE festgelegt ist und versucht wird, einen Datensatz mit einem doppelten Wert in eine Schlüsselspalte einzufügen, fügt SQL Server diesen Datensatz nicht ein. Aber er fügt den nachfolgenden Datensatz ein; Daher schlägt der Massenladevorgang nicht fehl. Wenn diese Eigenschaft auf FALSE festgelegt ist, schlägt die Massenlast fehl, wenn versucht wird, einen doppelten Wert in eine Schlüsselspalte einzufügen.

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

Die Standardeinstellung lautet FALSE.

KeepIdentity
Gibt an, wie die Werte für eine Identitätstypspalte in der Quelldatei behandelt werden. Dies ist eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE festgelegt ist, weist XML Bulk Load die Werte zu, die in der Quelldatei angegeben sind, der Identitätsspalte. Wenn die Eigenschaft auf FALSE festgelegt ist, ignoriert der Massenladevorgang die Identitätsspaltenwerte, die in der Quelle angegeben sind. In diesem Fall weist SQL Server der Identitätsspalte einen Wert zu.

Wenn die Massenlast eine Spalte umfasst, bei der es sich um einen Fremdschlüssel handelt, der sich auf eine Identitätsspalte bezieht, in der SQL Server-generierte Werte gespeichert werden, verteilt "Massenlast" diese Identitätswerte entsprechend an die Fremdschlüsselspalte.

Der Wert dieser Eigenschaft gilt für alle Spalten, die an der Massenlast beteiligt sind. Der Standardwert ist TRUE.

Hinweis

Damit diese Eigenschaft WAHR ist, müssen Sie über ALTER TABLE-Berechtigungen für Zieltabellen verfügen. Andernfalls muss er auf einen Wert von FALSE festgelegt werden. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL).

KeepNulls
Gibt an, welcher Wert für eine Spalte verwendet werden soll, die ein entsprechendes Attribut oder untergeordnetes Element im XML-Dokument fehlt. Dies ist eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE festgelegt ist, weist xml Bulk Load der Spalte einen NULL-Wert zu. Wenn vorhanden, wird der Standardwert der Spalte nicht zugewiesen, wie auf dem Server festgelegt. Der Wert dieser Eigenschaft gilt für alle Spalten, die an der Massenlast beteiligt sind.

Die Standardeinstellung lautet FALSE.

SchemaGen
Gibt an, ob vor dem Ausführen eines Massenladevorgangs die erforderlichen Tabellen erstellt werden sollen. Dies ist eine boolesche Eigenschaft. Wenn diese Eigenschaft auf TRUE festgelegt ist, werden die im Zuordnungsschema identifizierten Tabellen erstellt (die Datenbank muss vorhanden sein). Wenn eine oder mehrere Tabellen bereits in der Datenbank vorhanden sind, 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 FREMDSCHLÜSSELeinschränkungen in der Datenbank, wenn es Übereinstimmungen sql:relationship und sql:key-fields Anmerkungen im Zuordnungsschema finden kann und ob das Schlüsselfeld aus einer einzelnen Spalte besteht.

Beachten Sie folgendes, wenn Sie die SchemaGen-Eigenschaft auf TRUE festlegen:

  • Erstellt die erforderlichen Tabellen aus den Element- und Attributnamen. Daher ist es wichtig, dass Sie sql Server-reservierte Wörter nicht für Element- und Attributnamen im Schema verwenden.

  • Gibt Überlaufdaten für jede Spalte zurück, die mithilfe des sql:overflow-field imXML-Datentypformat festgelegt ist.

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 FALSCH ist, werden die vorhandenen Tabellen beibehalten. Wenn diese Eigenschaft WAHR ist, werden die vorhandenen Tabellen gelöscht und neu erstellt.

Die Standardeinstellung lautet FALSE.

SGUseID
Gibt an, ob das Attribut im Zuordnungsschema, das als id Typ identifiziert wird, beim Erstellen einer PRIMARY KEY-Einschränkung verwendet werden kann. Verwenden Sie diese Eigenschaft, wenn die SchemaGen-Eigenschaft auf TRUE festgelegt ist. Wenn SGUseID TRUE ist, verwendet das SchemaGen-Dienstprogramm 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.

Die Standardeinstellung lautet FALSE.

TempFilePath
Gibt den Dateipfad an, in dem das XML-Massenladevorgang die temporären Dateien für eine transaktionsgelastete Massenlast erstellt. (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 die XML-Massenlast verwendet wird, Zugriff auf diesen Pfad hat. Wenn diese Eigenschaft nicht festgelegt ist, speichert XML Bulk Load die temporären Dateien an dem Speicherort, der in der TEMP-Umgebungsvariable angegeben ist.

Transaktion
Gibt an, ob die Massenlast als Transaktion durchgeführt werden soll. In diesem Fall wird das Rollback garantiert, wenn die Massenlast fehlschlägt. Dies ist eine boolesche Eigenschaft. Wenn die Eigenschaft auf TRUE festgelegt ist, tritt die Massenlast in einem Transaktionskontext auf. Die TempFilePath-Eigenschaft ist nur dann nützlich, wenn Transaction auf TRUE festgelegt ist.

Hinweis

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

Die Standardeinstellung lautet FALSE.

XMLFragment
Gibt an, ob es sich bei den Quelldaten um ein XML-Fragment handelt. Ein XML-Fragment ist ein XML-Dokument ohne einzelnes Element der obersten Ebene (Stammelement). Dies ist eine boolesche Eigenschaft. Diese Eigenschaft muss auf TRUE festgelegt werden, wenn die Quelldatei aus einem XML-Fragment besteht.

Die Standardeinstellung lautet FALSE.