Sdílet prostřednictvím


SQL Server XML Bulk Load Object Model (SQLXML 4.0)

platí pro:SQL Serverazure SQL Database

Model objektů Microsoft SQL Server XML Bulk Load se skládá z objektu SQLXMLBulkLoad. Tento objekt podporuje následující metody a vlastnosti.

Methods

Execute
Data se hromadně načítají pomocí souboru schématu a datového souboru (nebo streamu), které jsou poskytnuty jako parametry.

Vlastnosti

BulkLoad
Specifikuje, zda by měl být proveden hromadný náklad. Tato vlastnost je užitečná, pokud chcete generovat pouze schémata (viz vlastnosti SchemaGen, SGDropTables a SGUseID, které následují) a nechcete provádět hromadné zatížení. Jedná se o booleovskou vlastnost. Když je vlastnost nastavena na TRUE, spustí se XML Bulk Load. Když je nastaven na FALSE, XML Bulk Load se nespouští.

Výchozí hodnota je PRAVDA.

CheckConstraints
Specifikuje, zda by měla být při vkládání dat do sloupců kontrolována omezení (například omezení vyplývající z vztahu primárního klíče/cizího klíče mezi sloupci), která jsou specifikována ve sloupci. Jedná se o booleovskou vlastnost.

Když je vlastnost nastavena na TRUE, XML Bulk Load kontroluje omezení pro každou vloženou hodnotu (což znamená, že porušení omezení vede k chybě).

Poznámka:

Pro ponechání této vlastnosti jako FALSE musíte mít oprávnění ALTER TABLE na cílových tabulkách. Další informace viz ALTER TABLE (Transact-SQL).

Výchozí hodnota je FALSE. Pokud je nastavena na FALSE, XML Bulk Load ignoruje omezení během operace vkládání. V současné implementaci musíte tabulky definovat v pořadí vztahů primárních klíčů a cizích klíčů v mapovacím schématu. To znamená, že tabulka s primárním klíčem musí být definována před odpovídající tabulkou s cizím klíčem; v opačném případě selže XML Bulk Load.

Všimněte si, že pokud se provádí šíření ID, tato možnost se neuplatní a kontrola omezení zůstane zapnutá. K tomu dochází, když KeepIdentity=False je definován vztah, kde rodič je identitní pole a hodnota je přiřazena dítěti při jeho generování.

ConnectionCommand
Identifikuje existující objekt spojení (například ADO nebo ICommand příkazový objekt), který by měl XML Bulk Load použít. Můžete použít vlastnost ConnectionCommand místo zadávání řetězce spojení s vlastností ConnectionString. Vlastnost Transaction musí být nastavena na TRUE, pokud používáte ConnectionCommand.

Pokud použijete jak vlastnosti ConnectionString, tak ConnectionCommand, XML Bulk Load používá poslední specifikovanou vlastnost.

Výchozí hodnota je NULL.

Připojovací řetězec
Identifikuje řetězec spojení OLE DB, který poskytuje potřebné informace pro navázání spojení s instancí databáze. Pokud použijete jak vlastnosti ConnectionString, tak ConnectionCommand, XML Bulk Load používá poslední specifikovanou vlastnost.

Výchozí hodnota je NULL.

ErrorLogFile
Specifikuje název souboru, do kterého XML Bulk Load zaznamenává chyby a zprávy. Výchozí je prázdný řetězec, v takovém případě nedochází k zaznamenání.

FireTriggers
Specifikuje, zda by se měly během operace Bulk Load spustit spouštěče definované na cílových tabulkách. Výchozí nastavení je NEPRAVDA.

Když je nastaveno na TRUE, spouště se při vkládání spustí normálně.

Poznámka:

Pro ponechání této vlastnosti jako FALSE musíte mít oprávnění ALTER TABLE na cílových tabulkách. Další informace viz ALTER TABLE (Transact-SQL).

Všimněte si, že pokud se provádí šíření ID, tato možnost se neuplatňuje a spouštěče zůstanou zapnuté. K tomu dochází, když KeepIdentity=False je definován vztah, kde rodič je identitní pole a hodnota je přiřazena dítěti při jeho generování.

ForceTableLock
Specifikuje, zda tabulky, do kterých XML Bulk Load kopíruje data, mají být po dobu trvání hromadného načítání uzamčeny. Jedná se o booleovskou vlastnost. Když je vlastnost nastavena na TRUE, XML Bulk Load získá uzamčení tabulek po dobu trvání Bulk Load. Když je nastavení na FALSE, XML Bulk Load získá zámek tabulky pokaždé, když vloží záznam do tabulky.

Výchozí hodnota je FALSE.

IgnoreDuplicateKeys
Specifikuje, co dělat, pokud se pokusí vložit duplicitní hodnoty do klíčového sloupce. Pokud je tato vlastnost nastavena na TRUE a pokusí se vložit záznam s duplicitní hodnotou do sloupce klíče, SQL Server tento záznam nevloží. Ale vkládá následující záznam; operace Bulk Load tedy neselže. Pokud je tato vlastnost nastavena na FALSE, hromadné načítání selže, když se pokusíte vložit duplicitní hodnotu do sloupce klíče.

Když je vlastnost IgnoreDuplicateKeys nastavena na TRUE, je vydán příkaz COMMIT pro každý záznam vložený do tabulky. To zpomaluje výkon. Vlastnost lze nastavit na TRUE pouze tehdy, když je vlastnost Transaction nastavena na FALSE, protože transakční chování je implementováno pomocí souborů.

Výchozí hodnota je FALSE.

KeepIdentity
Specifikuje, jak se vypořádat s hodnotami sloupce typu Identity ve zdrojovém souboru. Jedná se o booleovskou vlastnost. Když je vlastnost nastavena na TRUE, XML Bulk Load přiřadí hodnoty specifikované ve zdrojovém souboru do sloupce identity. Když je vlastnost nastavena na FALSE, operace hromadného načítání ignoruje hodnoty sloupců identity, které jsou specifikovány ve zdrojovém kódu. V tomto případě SQL Server přiřadí hodnotu sloupci identity.

Pokud Bulk Load zahrnuje sloupec, který je cizím klíčem odkazujícím na sloupec identity, ve kterém jsou uloženy hodnoty generované SQL Serverem, Bulk Load správně propaguje tyto hodnoty identity do sloupce cizího klíče.

Hodnota této vlastnosti se vztahuje na všechny sloupy zapojené do objemového zatížení. Výchozí hodnota je PRAVDA.

Poznámka:

Aby byla tato vlastnost PRAVDA, musíte mít oprávnění ALTER TABLE na cílových tabulkách. Jinak musí být nastavena na hodnotu FALSE. Další informace viz ALTER TABLE (Transact-SQL).

KeepNulls
Specifikuje, jakou hodnotu použít pro sloupec, kterému chybí odpovídající atribut nebo podprvek v XML dokumentu. Jedná se o booleovskou vlastnost. Když je vlastnost nastavena na TRUE, XML Bulk Load přiřadí sloupci nulovou hodnotu. Nepřiřazuje výchozí hodnotu sloupce, pokud nějakou má, jak je nastavena na serveru. Hodnota této vlastnosti se vztahuje na všechny sloupy zapojené do objemového zatížení.

Výchozí hodnota je FALSE.

SchemaGen
Specifikuje, zda má před provedením operace hromadného načítání vytvořit požadované tabulky. Jedná se o booleovskou vlastnost. Pokud je tato vlastnost nastavena na TRUE, vytvoří se tabulky identifikované v mapovacím schématu (databáze musí existovat). Pokud jedna nebo více tabulek již v databázi existuje, vlastnost SGDropTables určuje, zda mají být tyto již existující tabulky odstraněny a znovu vytvořeny.

Výchozí hodnota vlastnosti SchemaGen je FALSE. SchemaGen nevytváří omezení PRIMÁRNÍHO KLÍČE na nově vytvořených tabulkách. SchemaGen však vytváří omezení FOREIGN KEY v databázi, pokud dokáže najít odpovídající anotace sql:relationship a sql:key-fields v mapovacím schématu a pokud klíčové pole obsahuje jediný sloupec.

Všimněte si, že pokud nastavíte vlastnost SchemaGen na TRUE, XML Bulk Load provede následující:

  • Vytváří potřebné tabulky z názvů prvků a atributů. Proto je důležité, abyste v rámci schématu nepoužívali vyhrazená slova pro názvy prvků a atributů v SQL Serveru.

  • Vrací data přetečení pro jakýkoli sloupec označený pomocí pole sql:overflow ve formátu xml datového typu .

SGDropTables
Specifikuje, zda by měly být stávající tabulky odstraněny a znovu vytvořeny. Tuto vlastnost používáte, když je vlastnost SchemaGen nastavena na TRUE. Pokud je SGDropTables NEPRAVDIVÉ, stávající tabulky jsou zachovány. Když je tato vlastnost PRAVDA, stávající tabulky jsou smazány a znovu vytvořeny.

Výchozí hodnota je FALSE.

SGUseID
Specifikuje, zda atribut v mapovacím schématu, který je identifikován jako id-type, může být použit při vytváření omezení PRIMÁRNÍ KLÍČ při vytváření tabulky. Použijte tuto vlastnost, když je vlastnost SchemaGen nastavena na TRUE. Pokud je SGUseID PRAVDA, nástroj SchemaGen používá atribut, pro který je jako sloupec primárního klíče zadán dt:type="id" a při vytváření tabulky přidá příslušné omezení PRIMÁRNÍ KLÍČ.

Výchozí hodnota je FALSE.

TempFilePath
Specifikuje cestu k souboru, kde XML Bulk Load vytváří dočasné soubory pro zpracované hromadné načítání. (Tato vlastnost je užitečná pouze tehdy, když je vlastnost Transaction nastavena na TRUE.) Musíte zajistit, aby účet SQL Serveru, který se používá pro XML Bulk Load, měl přístup k této cestě. Pokud tato vlastnost není nastavena, XML Bulk Load uloží dočasné soubory na místo specifikované v proměnné prostředí TEMP.

Transakce
Specifikuje, zda má být hromadné načítání provedeno jako transakce, v takovém případě je vrácení zpět zaručeno, pokud hromadné načítání selže. Jedná se o booleovskou vlastnost. Pokud je vlastnost nastavena na TRUE, hromadné načítání probíhá v transakčním kontextu. Vlastnost TempFilePath je užitečná pouze tehdy, když je Transaction nastavena na TRUE.

Poznámka:

Pokud načítáte binární data (například bin.hex, bin.base64 XML datové typy do binárního, image SQL Server datových typů), vlastnost Transaction musí být nastavena na FALSE.

Výchozí hodnota je FALSE.

XMLFragment
Specifikuje, zda zdrojová data jsou XML fragmentem. XML fragment je XML dokument bez jediného vrcholného (kořenného) prvku. Jedná se o booleovskou vlastnost. Tato vlastnost musí být nastavena na TRUE, pokud zdrojový soubor obsahuje XML fragment.

Výchozí hodnota je FALSE.