Delen via


SQL Server XML Bulk Load Object Model (SQLXML 4.0)

Van toepassing op:SQL ServerAzure SQL Database

Het Microsoft SQL Server XML Bulk Load-objectmodel bestaat uit het SQLXMLBulkLoad-object. Dit object ondersteunt de volgende methoden en eigenschappen.

Methods

Execute
Bulk laadt de data door gebruik te maken van het schemabestand en databestand (of stroom) die als parameters worden geleverd.

Eigenschappen

BulkLoad
Geeft aan of er een bulklading moet worden uitgevoerd. Deze eigenschap is handig als je alleen de schema's wilt genereren (zie de SchemaGen-, SGDropTables- en SGUseID-eigenschappen die volgen) en geen bulkload uitvoert. Dit is een Booleaanse eigenschap. Wanneer de eigenschap op TRUE is gezet, wordt XML Bulk Load uitgevoerd. Wanneer deze op FOUT is gezet, wordt XML Bulk Load niet uitgevoerd.

De standaardwaarde is WAAR.

CheckConstraints
Specificeert of de beperkingen (zoals beperkingen vanwege de primaire sleutel/vreemde sleutel-relatie tussen kolommen) die op de kolom zijn gespecificeerd, moeten worden gecontroleerd wanneer XML Bulk Load gegevens in de kolommen invoegt. Dit is een Booleaanse eigenschap.

Wanneer de eigenschap op WAAR is gezet, controleert XML Bulk Load de constraints voor elke ingevoegde waarde (wat betekent dat een constraint-overtreding tot een fout leidt).

Opmerking

Om deze eigenschap als FOUT te laten, moet je ALTER TABLE-rechten hebben op doeltabellen. Zie ALTER TABLE (Transact-SQL)voor meer informatie.

De standaardwaarde is FALSE. Wanneer deze op FOUT is gezet, negeert XML Bulk Load de beperkingen tijdens een insert-operatie. In de huidige implementatie moet je de tabellen definiëren in de volgorde van primaire sleutel- en vreemde sleutelrelaties in het mappingschema. Dat wil zeggen, een tabel met een primaire sleutel moet vóór de overeenkomstige tabel met de vreemde sleutel worden gedefinieerd; anders faalt XML Bulk Load.

Let op dat als ID-propagatie wordt uitgevoerd, deze optie niet van toepassing is en constraint checking blijft ingeschakeld. Dit gebeurt wanneer KeepIdentity=False en er een relatie is gedefinieerd waarbij de ouder een identiteitsveld is en de waarde aan het kind wordt gegeven zodra deze wordt gegenereerd.

ConnectionCommand
Identificeert een bestaand verbindingsobject (bijvoorbeeld het ADO of ICommand commandoobject) dat XML Bulk Load zou moeten gebruiken. Je kunt de eigenschap ConnectionCommand gebruiken in plaats van een verbindingsstring te specificeren met de eigenschap ConnectionString. De eigenschap Transaction moet op TRUE staan als je ConnectionCommand gebruikt.

Als je zowel de eigenschappen ConnectionString als ConnectionCommand gebruikt, gebruikt XML Bulk Load de laatst gespecificeerde eigenschap.

De standaardwaarde is NULL.

ConnectionString
Identificeert de OLE DB-verbindingsstring die de benodigde informatie levert om een verbinding met een instantie van de database tot stand te brengen. Als je zowel de eigenschappen ConnectionString als ConnectionCommand gebruikt, gebruikt XML Bulk Load de laatst gespecificeerde eigenschap.

De standaardwaarde is NULL.

ErrorLogFile
Specificeert de bestandsnaam waarin de XML Bulk Load fouten en berichten registreert. De standaard is een lege string, in welk geval er geen logging plaatsvindt.

FireTriggers
Geeft aan of triggers gedefinieerd op doeltabellen moeten afgaan tijdens de Bulk Load-operatie. De standaard is FOUT.

Wanneer ingesteld op TRUE, zullen triggers tijdens insert-operaties zoals normaal afgaan.

Opmerking

Om deze eigenschap als FOUT te laten, moet je ALTER TABLE-rechten hebben op doeltabellen. Zie ALTER TABLE (Transact-SQL)voor meer informatie.

Let op: als ID-voortplanting wordt uitgevoerd, geldt deze optie niet en blijven triggers aanstaan. Dit gebeurt wanneer KeepIdentity=False en er een relatie is gedefinieerd waarbij de ouder een identiteitsveld is en de waarde aan het kind wordt gegeven zodra deze wordt gegenereerd.

ForceTableLock
Specificeert of de tabellen waarin XML Bulk Load data kopieert, vergrendeld moeten worden gedurende de duur van de Bulk Load. Dit is een Booleaanse eigenschap. Wanneer de eigenschap op TRUE is gezet, krijgt XML Bulk Load tabelvergrendelingen voor de duur van de Bulk Load. Wanneer deze op FOUT is gezet, krijgt XML Bulk Load een tabellock telkens wanneer een record in een tabel wordt ingevoegd.

De standaardwaarde is FALSE.

NegeerDuplicateKeys
Geeft aan wat te doen is als er wordt geprobeerd dubbele waarden in een sleutelkolom in te voegen. Als deze eigenschap op WAAR is gezet en er wordt geprobeerd een record met een dubbele waarde in een sleutelkolom in te voegen, voegt SQL Server dat record niet in. Maar het voegt wel het volgende record in; dus faalt de Bulk Load-operatie niet. Als deze eigenschap op FOUT is gezet, faalt Bulk Load wanneer er een poging wordt gedaan om een dubbele waarde in een sleutelkolom in te voegen.

Wanneer de eigenschap IgnoreDuplicateKeys op TRUE wordt gezet, wordt er voor elk record dat in de tabel is ingevoegd een COMMIT-instructie uitgegeven. Dit vertraagt de uitvoering. De eigenschap kan alleen op WAAR worden gezet wanneer de Transactie-eigenschap op FALSE staat, omdat het transactionele gedrag wordt geïmplementeerd met bestanden.

De standaardwaarde is FALSE.

KeepIdentity
Geeft aan hoe de waarden voor een Identity-typekolom in het bronbestand moeten worden verwerkt. Dit is een Booleaanse eigenschap. Wanneer de eigenschap op TRUE is gezet, wijst XML Bulk Load de waarden toe die in het bronbestand zijn gespecificeerd aan de identiteitskolom. Wanneer de eigenschap op FALSE wordt gezet, negeert de bulk-load operatie de identiteit-kolomwaarden die in de bron zijn gespecificeerd. In dit geval wijst SQL Server een waarde toe aan de identiteitskolom.

Als de Bulk Load een kolom betreft die een vreemde sleutel is en verwijst naar een identiteitskolom waarin door SQL Server gegenereerde waarden worden opgeslagen, propageert Bulk Load deze identiteitswaarden passend naar de kolom vreemde sleutel.

De waarde van deze eigenschap geldt voor alle kolommen die betrokken zijn bij de bulkbelasting. De standaardwaarde is WAAR.

Opmerking

Om deze eigenschap als WAAR te behouden, moet je ALTER TABLE-rechten hebben op doeltabellen. Anders moet het worden ingesteld op een waarde van FOUT. Zie ALTER TABLE (Transact-SQL)voor meer informatie.

KeepNulls
Geeft aan welke waarde te gebruiken voor een kolom die een overeenkomstig attribuut of kindelement mist in het XML-document. Dit is een Booleaanse eigenschap. Wanneer de eigenschap op TRUE is gezet, wijst XML Bulk Load een nullwaarde toe aan de kolom. Het wijst de standaardwaarde van de kolom niet toe, indien aanwezig, zoals ingesteld op de server. De waarde van deze eigenschap geldt voor alle kolommen die betrokken zijn bij de bulkbelasting.

De standaardwaarde is FALSE.

SchemaGen
Specificeert of de benodigde tabellen moeten worden aangemaakt voordat een Bulk Load-operatie wordt uitgevoerd. Dit is een Booleaanse eigenschap. Als deze eigenschap op WAAR is gezet, worden de tabellen die in het mapping schema zijn geïdentificeerd aangemaakt (de database moet bestaan). Als een of meer van de tabellen al in de database bestaan, bepaalt de SGDropTables-eigenschap of deze bestaande tabellen worden verwijderd en opnieuw aangemaakt.

De standaardwaarde voor de SchemaGen-eigenschap is FOUT. SchemaGen maakt geen PRIMARY KEY-beperkingen op de nieuw aangemaakte tabellen. SchemaGen creëert echter wel FOREIGN KEY-beperkingen in de database als het overeenkomende sql:relationship- en sql:key-fields-annotaties kan vinden in het mappingschema en als het key-veld uit één kolom bestaat.

Let op dat als je de SchemaGen-eigenschap op TRUE zet, XML Bulk Load het volgende doet:

  • Maakt de benodigde tabellen aan van de namen van elementen en attribuuten. Daarom is het belangrijk dat je geen SQL Server-gereserveerde woorden gebruikt voor element- en attribuutnamen in het schema.

  • Geeft overflowgegevens terug voor elke kolom die is aangewezen met het sql:overflow-veld in XML-datatypeformaat .

SGDropTables
Geeft aan of bestaande tabellen moeten worden verwijderd en opnieuw aangemaakt. Je gebruikt deze eigenschap wanneer de SchemaGen-eigenschap op TRUE is gezet. Als SGDropTables FOUT is, blijven de bestaande tabellen behouden. Wanneer deze eigenschap WAAR is, worden de bestaande tabellen verwijderd en opnieuw aangemaakt.

De standaardwaarde is FALSE.

SGUseID
Specificeert of het attribuut in het mappingschema dat als id-type wordt geïdentificeerd, gebruikt kan worden bij het creëren van een PRIMARY KEY-constraint wanneer de tabel wordt aangemaakt. Gebruik deze eigenschap wanneer de SchemaGen-eigenschap op TRUE is gezet. Als SGUseID TRUE is, gebruikt het SchemaGen-hulpprogramma een attribuut waarvoor dt:type="id" als primaire sleutelkolom is opgegeven en voegt bij het aanmaken van de tabel de juiste PRIMARY KEY-constraint toe.

De standaardwaarde is FALSE.

TempFilePath
Specificeert het bestandspad waar XML Bulk Load de tijdelijke bestanden aanmaakt voor een getransacte bulkbelasting. (Deze eigenschap is alleen nuttig wanneer de Transactie-eigenschap op WAAR is gezet.) Je moet ervoor zorgen dat het SQL Server-account dat wordt gebruikt voor XML Bulk Load toegang heeft tot dit pad. Als deze eigenschap niet is ingesteld, slaat XML Bulk Load de tijdelijke bestanden op de locatie die is gespecificeerd in de TEMP-omgevingsvariabele.

Transactie
Specificeert of de Bulk Load als transactie moet worden uitgevoerd, in welk geval de rollback gegarandeerd is als de Bulk Load faalt. Dit is een Booleaanse eigenschap. Als de eigenschap op WAAR is gezet, vindt de Bulk Load plaats in een transactionele context. De eigenschap TempFilePath is alleen nuttig wanneer Transaction op WAAR is gezet.

Opmerking

Als je binaire data laadt (zoals de bin.hex, bin.base64 XML-datatypes naar de binaire, image SQL Server-datatypes), moet de Transaction-eigenschap op FALSE worden gezet.

De standaardwaarde is FALSE.

XMLFragment
Specificeert of de brondata een XML-fragment is. Een XML-fragment is een XML-document zonder enkel, top-level (root) element. Dit is een Booleaanse eigenschap. Deze eigenschap moet op WAAR worden gezet als het bronbestand uit een XML-fragment bestaat.

De standaardwaarde is FALSE.