Sdílet prostřednictvím


Použití souborů jiného formátu než XML (SQL Server)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformní systém (PDW)

V SQL Serveru jsou podporovány dva typy formátových souborů pro hromadný export a import: soubory formátu XML a soubory formátu XML.

Výhody souborů jiného formátu než XML

Soubor jiného formátu než XML můžete vytvořit automaticky zadáním možnosti formátu v příkazu bcp .

Když v příkazu bcp zadáte existující formátový soubor, použije příkaz hodnoty zaznamenané ve formátu souboru a nezobrazí výzvu k zadání typu úložiště souborů, délky předpony, délky pole nebo ukončování polí.

Můžete vytvořit formátový soubor pro konkrétní datový typ, například znaková data nebo nativní data.

Můžete vytvořit soubor formátu jiného typu než XML, který obsahuje interaktivně zadané atributy pro každé datové pole. Další informace naleznete v tématu Určení formátů dat kompatibility při použití nástroje bcp (SQL Server).

Soubory formátu XML nabízejí několik výhod oproti souborům jiného formátu než XML. Další informace najdete v tématu Soubory formátu XML (SQL Server).

Poznámka:

Tato syntaxe, včetně hromadného vložení, není ve službě Azure Synapse Analytics podporovaná. V Azure Synapse Analytics a dalších integracích cloudové databázové platformy můžete provádět přesun dat prostřednictvím příkazu COPY ve službě Azure Data Factorynebo pomocí příkazů T-SQL, jako je COPY INTO a PolyBase.

Struktura souborů ve formátu mimo XML

Soubor jiného formátu než XML je textový soubor, který má určitou strukturu. Soubor formátu jiného typu než XML obsahuje informace o typu úložiště souborů, délce předpony, délce pole a ukončovači polí každého sloupce tabulky.

Následující obrázek znázorňuje pole formátového souboru pro ukázkový formát souboru bez XML.

Identifikuje pole souboru jiného formátu než XML.

Pole Verze a Počet sloupců se vyskytují pouze jednou. Jejich významy jsou popsány v následující tabulce.

Pole Formát souboru Popis
Version Číslo verze nástroje bcp :

9.0 = SQL Server 2005 (9.x)

10.0 = SQL Server 2008 (10.0.x)

11.0 = SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)

13.0 = SQL Server 2016 (13.x)

14.0 = SQL Server 2017 (14.x)

15.0 = SQL Server 2019 (15.x)

16.0 = SQL Server 2022 (16.x)

Číslo verze je rozpoznáno pouze nástrojem bcp, nikoli jazykem Transact-SQL.

Poznámka: Verze nástroje bcp použitá ke čtení souboru formátu musí být stejná jako nebo novější verze, než byla použita k vytvoření souboru formátu. Například SQL Server 2012 (11.x) bcp může číst formátový soubor verze 10.0, který je generován SQL Server 2008 (10.0.x) bcp, ale SQL Server 2008 (10.0.x) bcp nemůže přečíst formátový soubor verze 12.0, který je generován SQL Serverem 2014 (12.x) bcp.
Počet sloupců Počet polí v datovém souboru Toto číslo musí být stejné ve všech řádcích.

Ostatní pole formátového souboru popisují datová pole, která mají být hromadně importována nebo exportována. Každé datové pole vyžaduje v souboru formátu samostatný řádek. Každý řádek souboru formátu obsahuje hodnoty pro pole formát-soubor, která jsou popsána v následující tabulce.

Pole Formát souboru Popis
Pořadí polí souboru hostitele Číslo, které označuje pozici každého pole v datovém souboru. První pole v řádku je 1 atd.
Datový typ souboru hostitele Určuje datový typ, který je uložený v daném poli datového souboru. S datovými soubory ASCII použijte SQLCHAR; pro datové soubory nativního formátu použijte výchozí datové typy. Další informace naleznete v tématu Určení typu úložiště souborů pomocí bcp (SQL Server).
Délka předpony Počet znaků délkového prefixu pole. Platné délky předpon jsou 0, 1, 2, 4 a 8. Pokud se chcete vyhnout zadání předpony délky, nastavte ji na hodnotu 0. Pokud pole obsahuje NULL datové hodnoty, musí být zadána předpona délky. Další informace naleznete v tématu Určení délky předpony v datových souborech pomocí bcp (SQL Server).
Délka dat souboru hostitele Maximální délka datového typu uloženého v konkrétním poli datového souboru v bajtech.

Pokud vytváříte soubor jiného formátu než XML pro textový soubor s oddělovači, můžete zadat hodnotu 0 pro délku dat hostitelského souboru každého datového pole. Při importu textového souboru s oddělovači s délkou předpony 0 a ukončovacím znakem se hodnota délky pole ignoruje, protože prostor úložiště používaný polem se rovná délce dat a ukončovacímu prvku.

Další informace naleznete v tématu Určení délky pole pomocí bcp (SQL Server).
Terminátor Oddělovač pro oddělení polí v datovém souboru Běžné oddělovače jsou čárka (,), tabulátor (\t) a konec řádku (\r\n). Další informace naleznete v tématu Zadání ukončovačů polí a řádků (SQL Server).
Pořadí sloupců serveru Pořadí, ve kterém se sloupce zobrazují v tabulce SQL Serveru Pokud například čtvrté pole v datovém souboru mapuje na šestý sloupec v tabulce SQL Serveru, pořadí sloupců serveru pro čtvrté pole je 6.

Pokud chcete zabránit tomu, aby sloupec v tabulce přijímal data z datového souboru, nastavte hodnotu pořadí sloupců serveru na 0hodnotu .
Název sloupce serveru Název sloupce zkopírovaného z tabulky SQL Serveru Skutečný název pole není povinný, ale pole v souboru formátu nesmí být prázdné.
Kollace sloupců Kolace použitá k ukládání znaků a dat Unicode v datovém souboru.

Poznámka:

Formátový soubor můžete upravit, abyste mohli hromadně importovat z datového souboru, ve kterém se číslo nebo pořadí polí liší od počtu nebo pořadí sloupců tabulky. Další informace naleznete v seznamu Souvisejících úkolů .

Příklad souboru jiného formátu než XML

Následující příklad ukazuje dříve vytvořený soubor formátu mimo XML (myDepartmentIdentical-f-c.fmt). Tento soubor popisuje znaková data pro každý sloupec v tabulce HumanResources.Department v ukázkové databázi AdventureWorks2025.

Vygenerovaný formát souboru myDepartmentIdentical-f-c.fmtobsahuje následující informace:

12.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""

Poznámka:

Obrázek znázorňující pole formát-soubor ve vztahu k tomuto ukázkovém souboru formátu jiného formátu než XML naleznete v části Struktura souborů formátu jiného formátu NEŽ XML.