Megosztás a következőn keresztül:


SQL Server XML Bulk Load Object Model (SQLXML 4.0)

A következőkre vonatkozik:SQL ServerAzure SQL Database

A Microsoft SQL Server XML Bulk Load objektummodellje az SQLXMLBulkLoad objektumból áll. Ez az objektum támogatja a következő módszereket és tulajdonságokat.

Methods

Execute
A tömeges adatok betöltése a séma fájl és adatfájl (vagy stream) segítségével, amelyeket paraméterként biztosítanak.

Tulajdonságok

BulkLoad
Megadja, hogy Tömeges Terhelést kell végrehajtani. Ez a tulajdonság akkor hasznos, ha csak a sémákat szeretnéd generálni (lásd a SchemaGen, SGDropTables és SGUseID tulajdonságokat, amelyek az alábbi jellemzőket), és nem akarsz tömeges terhelést végrehajtani. Ez egy Boole-i tulajdonság. Amikor a tulajdonság TRUE-ra van állítva, az XML Bulk Load fut be. Ha HAMISRA van állítva, az XML Bulk Load nem fut be.

Az alapértelmezett érték TRUE.

CheckConstraints
Megadja, hogy az oszlopon megadott korlátokat (például az oszlopok közötti elsődleges kulcs/idegen kulcs viszonyból eredő korlátozásokat) ellenőrizni kell-e, amikor XML Bulk Load adatokat helyez be az oszlopokba. Ez egy Boole-i tulajdonság.

Amikor a tulajdonság TRUE-ra van állítva, az XML Bulk Load ellenőrzi minden beillesztett érték korlátait (ami azt jelenti, hogy egy korlátozásszegés hibát eredményez).

Megjegyzés:

Ahhoz, hogy ezt a tulajdonságot HAMISNAK hagyjuk, az ALTER TABLE jogosultságoknak kell lenniük a céltáblákon. További információ: ALTER TABLE (Transact-SQL).

Az alapértelmezett érték HAMIS. Ha HAMISRA van állítva, az XML Tömeges Terhelés figyelmen kívül hagyja a korlátokat egy beszekesztési művelet során. A jelenlegi megvalósításban a táblákat a leképezési sémában elsődleges kulcs és idegen kulcs viszonyok sorrendjében kell definiálni. Vagyis egy olyan táblát, amelynek elsődleges kulcsa van, a megfelelő tábla előtt kell definiálni, ahol az idegen kulcs van; különben az XML Bulk Load meghibásodik.

Fontos megjegyezni, hogy ha ID propagáció történik, akkor ez az opció nem érvényes, és a korlátozások ellenőrzése bekapcsolva marad. Ez akkor fordul elő, amikor KeepIdentity=False és van egy olyan kapcsolat, ahol a szülő egy identitásmező, és az értéket a gyermeknek kapják, ahogy generálják.

ConnectionCommand
Azonosít egy meglévő kapcsolati objektumot (például az ADO vagy ICommand parancsobjektumot), amelyet az XML Bulk Load-nak használnia kellene. Használhatod a ConnectionCommand tulajdonságot ahelyett, hogy a ConnectionString tulajdonsággal rendelkező kapcsolati stringet adnál meg. A TransactionCommand tulajdonságot TRUE-ra kell állítani, ha a ConnectionCommand-ot használod.

Ha mind a ConnectionString, mind a ConnectionCommand tulajdonságokat használod, az XML Bulk Load az utolsó megadott tulajdonságot használja.

Az alapértelmezett érték NULL.

ConnectionString
Azonosítja az OLE DB kapcsolati stringet, amely biztosítja a szükséges információkat az adatbázis egy példányához való kapcsolat létrehozásához. Ha mind a ConnectionString, mind a ConnectionCommand tulajdonságokat használod, az XML Bulk Load az utolsó megadott tulajdonságot használja.

Az alapértelmezett érték NULL.

ErrorLogFile
Megadja azt a fájlnevet, amelybe az XML Bulk Load hibákat és üzeneteket rögzít. Az alapértelmezett egy üres string, ebben az esetben nem történik naplózás.

FireTriggers
Megadja, hogy a céltáblákon meghatározott triggereknek a tömeges terhelés alatt kell elindulniuk. Az alapértelmezett HAMIS.

Ha TRUE-ra állítva, a triggerek a beilleszkedési műveletek során a szokásos módon elindulnak.

Megjegyzés:

Ahhoz, hogy ezt a tulajdonságot HAMISNAK hagyjuk, az ALTER TABLE jogosultságoknak kell lenniük a céltáblákon. További információ: ALTER TABLE (Transact-SQL).

Fontos megjegyezni, hogy ha ID propagáció történik, akkor ez az opció nem érvényes, és a triggerek bekapcsolva maradnak. Ez akkor fordul elő, amikor KeepIdentity=False és van egy olyan kapcsolat, ahol a szülő egy identitásmező, és az értéket a gyermeknek kapják, ahogy generálják.

ForceTableLock
Megadja, hogy azok a táblák, amelyekbe az XML Bulk Load adatokat kopiolik, le kell-e zárva a Bulk Load időtartamára. Ez egy Boole-i tulajdonság. Amikor a tulajdonság TRUE-ra van állítva, az XML Tömeges Terhelés a Tömeges Terhelés időtartamára táblazárokat szerz. Ha HAMISRA van állítva, az XML Tömeges Terhelés minden alkalommal, amikor egy rekordot behelyez egy táblába, táblázatzárat szerez.

Az alapértelmezett érték HAMIS.

IgnoreDuplicateKeys
Megadja, mit kell tenni, ha megpróbálják duplikált értékeket behelyezni egy kulcsoszlopba. Ha ez a tulajdonság TRUE-ra van állítva, és megpróbálnak egy duplikált értékkel rendelkező rekordot beilleszteni egy kulcsoszlopba, akkor az SQL Server nem helyezi be azt a rekordot. De beilleszti a következő feljegyzést; így a tömeges terhelés művelet nem bukik meg. Ha ez a tulajdonság HAMIS-ra van állítva, akkor a Tömeges Terhelés sikertelenül megbukik, ha megpróbálnak egy duplikált értéket beilleszteni egy kulcsoszlopba.

Amikor az IgnoreDuplicateKeys tulajdonságot TRUE-ra állítják, minden táblába beillesztett rekord esetén COMMIT utasítást adnak ki. Ez lassítja a teljesítményt. A tulajdonság csak akkor állítható TRUE-ra, ha a Transaction tulajdonság FALSE-ra van állítva, mivel a tranzakciós viselkedés fájlokkal valósul meg.

Az alapértelmezett érték HAMIS.

KeepIdentity
Megadja, hogyan kezelje az Identity típusú oszlop értékeit a forrásfájlban. Ez egy Boole-i tulajdonság. Amikor a tulajdonság TRUE-ra van állítva, az XML Bulk Load a forrásfájlban megadott értékeket hozzárendeli az identitás oszlophoz. Amikor a tulajdonság HAMIS-ra van állítva, a tömeges terhelés művelet figyelmen kívül hagyja a forrásban megadott identitásoszlop-értékeket. Ebben az esetben az SQL Server értéket rendel az identitásoszlophoz.

Ha a Tömeges Töltés egy olyan oszlopot foglal magában, amely egy azonosító oszlopra utal, amelyben SQL Server által generált értékek tárolódnak, akkor a Tömeges Töltés megfelelően terjeszti ezeket az identitásértékeket az idegen kulcsoszlopba.

Ennek az értéknek az értéke minden oszlopra vonatkozik, amely részt vesz a tömegterhelésben. Az alapértelmezett érték TRUE.

Megjegyzés:

Ahhoz, hogy ez a tulajdonság IGAZKÉNT maradjon, az ALTER TABLE jogosultságoknak kell lenniük a céltáblákon. Ellenkező esetben HAMIS értékre kell állítani. További információ: ALTER TABLE (Transact-SQL).

KeepNulls
Megadja, milyen értéket kell használni egy olyan oszlophoz, amelyből hiányzik egy megfelelő attribútum vagy gyermekelem az XML dokumentumban. Ez egy Boole-i tulajdonság. Amikor a tulajdonság TRUE-ra van állítva, az XML Bulk Load null értéket rendel az oszlophoz. Nem rendeli meg az oszlop alapértelmezett értékét, ha van, a szerveren beállított értékhez. Ennek az értéknek az értéke minden oszlopra vonatkozik, amely részt vesz a tömegterhelésben.

Az alapértelmezett érték HAMIS.

SchemaGen
Megadja, hogy a szükséges táblákat kell létrehozni a tömeges terhelés művelet végrehajtása előtt. Ez egy Boole-i tulajdonság. Ha ez a tulajdonság TRUE-ra van állítva, létrejönnek a leképezési sémában azonosított táblák (az adatbázisnak léteznie kell). Ha egy vagy több tábla már létezik az adatbázisban, az SGDropTables tulajdonság határozza meg, hogy ezeket a meglévő táblákat el kell hagyni és újraalkotni.

A SchemaGen tulajdonság alapértelmezett értéke HAMIS. A SchemaGen nem hoz létre ELSŐDLEGES KULCS korlátozásokat az újonnan létrehozott táblákon. A SchemaGen azonban IDEGEN KULCS korlátokat hoz létre az adatbázisban, ha talál megfelelő sql:relationship és sql:key-fields annotációkat a leképezési sémában, és ha a kulcsmező egyetlen oszlopból áll.

Fontos megjegyezni, hogy ha a SchemaGen tulajdonságot TRUE-ra állítod, az XML Bulk Load a következőket végzi:

  • Létrehozza a szükséges táblákat az elem- és attribútumnevekből. Ezért fontos, hogy ne használj SQL Server által fenntartott szavakat elem- és attribútumnevekhez a sémában.

  • Bármely sql:overflow-field fájllal kijelölt oszlop túlterhelési adatokat ad vissza xml adattípus formátumban.

SGDropTables
Megadja, hogy a meglévő táblákat el kell-e dobni és újraalkotni. Ezt a tulajdonságot akkor használod, amikor a SchemaGen tulajdonság TRUE-ra van állítva. Ha az SGDropTables HAMIS, a meglévő táblák megmaradnak. Ha ez a tulajdonság IGAZ, a meglévő táblákat töröljük és újraalkotják.

Az alapértelmezett érték HAMIS.

SGUseID
Megadja, hogy a leképezési sémában azonosító típusként azonosított attribútumot használhatják-e ELSŐDLEGES KULCS korlátozás létrehozásához a tábla létrehozásakor. Használd ezt a tulajdonságot, amikor a SchemaGen tulajdonság TRUE-ra van állítva. Ha az SGUseID TRUE, a SchemaGen segédeszköz egy attribútumot használ, amelyhez dt:type="id " van megadva elsődleges kulcsoszlopként, és a tábla létrehozásához hozzáadja a megfelelő ELSŐDLEGES KULCS korlátozást.

Az alapértelmezett érték HAMIS.

TempFilePath
Megadja azt a fájlútvonalat, ahol az XML Bulk Load létrehozza az ideiglenes fájlokat egy tranzakciós tömeges terheléshez. (Ez a tulajdonság csak akkor hasznos, ha a Transaction tulajdonság TRUE-ra van állítva.) Biztosítani kell, hogy az XML tömeges terheléshez használt SQL Server fiók hozzáférjen ehhez az úthoz. Ha ez a tulajdonság nincs beállítva, az XML Bulk Load az ideiglenes fájlokat a TEMP környezeti változóban megadott helyen tárolja.

Tranzakció
Megadja, hogy a tömeges terhelést tranzakcióként kell végrehajtani, ebben az esetben a visszafordítás garantált, ha a tömeges terhelés meghibásodik. Ez egy Boole-i tulajdonság. Ha a tulajdonság TRUE-ra van állítva, a Tömeges Terhelés tranzakciós kontextusban történik. A TempFilePath tulajdonság csak akkor hasznos, ha a tranzakció TRUE-ra van állítva.

Megjegyzés:

Ha bináris adatokat töltünk be (például a bin.hex, bin.base64 XML adattípusokat a bináris, kép SQL Server adattípusokra), akkor a Transaction tulajdonságot HAMIS-ra kell állítani.

Az alapértelmezett érték HAMIS.

XMLFragment
Megadja, hogy a forrásadat XML töredék-e. Az XML töredék egy XML dokumentum, amelynek nincs egyetlen felső szintű (gyökér) eleme. Ez egy Boole-i tulajdonság. Ezt a tulajdonságot TRUE-ra kell állítani, ha a forrásfájl XML töredékből áll.

Az alapértelmezett érték HAMIS.