SQL Server XML Bulk Load-Objektmodell (SQLXML 4.0)
Gilt für: SQL Server Azure 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
Ausführen
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 SchemaGen-, SGDropTables- und SGUseID-Eigenschaften) und keine Massenlast. 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 FALSCH. 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
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
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-Massenladevorgang die letzte 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 FALSCH.
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 eine 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 FALSCH.
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 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 vom Massenladen betroffene Spalten. Der Standardwert ist TRUE.
Hinweis
Damit diese Eigenschaft WAHR ist, 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 FALSCH.
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 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 sie übereinstimmende 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 notwendigen Tabellen aus dem Element und den 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 im XML-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 auf TRUE gesetzt ist, werden die vorhandenen Tabellen gelöscht und neu erstellt.
Der Standardwert ist FALSCH.
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-Hilfsprogramm ein Attribut, für das dt:type="id" als Primärschlüsselspalte angegeben wird und beim Erstellen der Tabelle die entsprechende PRIMARY KEY-Einschränkung hinzufügt.
Der Standardwert ist FALSCH.
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 die XML-Massenlast 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 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.
Der Standardwert ist FALSCH.
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 FALSCH.