Sdílet prostřednictvím


Vytvoření formátu souboru pomocí bcp (SQL Server)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Tento článek popisuje, jak pomocí nástroje bcp vytvořit formátový soubor pro konkrétní tabulku. Formátový soubor je založen na zadané možnosti datového typu (-n, -c, -wnebo -N) a oddělovače tabulky nebo zobrazení.

Při hromadném importu do tabulky SQL Serveru nebo hromadného exportu dat z tabulky můžete pro zápis datových souborů použít formátovací soubor jako flexibilní systém. Formátové soubory vyžadují pro dosažení souladu s jinými datovými formáty nebo čtení datových souborů z jiných softwarových programů jen minimální nebo žádné úpravy.

Omezení

Verze nástroje bcp (bcp.exe) použitá ke čtení souboru formátu musí být stejná jako verze nebo novější než verze použitá k vytvoření formátu souboru. Například SQL Server 2016 (13.x) bcp může číst formátový soubor verze 12.0, který je generován SQL Server 2014 (12.x) bcp, ale SQL Server 2014 (12.x) bcp nemůže přečíst formátový soubor verze 13.0, který je generován SQL Serverem 2016 (13.x) bcp.

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.

Vytváření formátových souborů

SQL Server podporuje dva typy formátového souboru: ne-XML formát a XML formát. Formát jiného formátu než XML je původní formát podporovaný dřívějšími verzemi SQL Serveru.

Obecně platí, že soubory formátu XML a jiné než XML jsou zaměnitelné. Doporučujeme však použít syntaxi XML pro formátové soubory, protože poskytují několik výhod oproti souborům formátu mimo XML.

Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2022 nebo AdventureWorksDW2022, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty . Adventure Works Cycles je fiktivní výrobní společnost, která slouží k předvedení konceptů a scénářů databáze.

Vytvoření souboru formátu XML

Pokud chcete k vytvoření formátu souboru použít příkaz b cp, zadejte format argument a místo cesty k datovému souboru použijte nul. Možnost format vždy vyžaduje možnost -f a k vytvoření souboru formátu XML musíte také zadat -x možnost, například bcp <table_or_view> format nul -f <format_file_name> -x.

K rozlišení souboru formátu XML doporučujeme použít .xml jako příponu názvu souboru, například MyTable.xml.

Informace o struktuře a polích souborů formátu XML naleznete v tématu XML Format Files (SQL Server).

Příklady

Tato část obsahuje následující příklady, které ukazují, jak použít bcp příkazy k vytvoření souboru formátu XML. Tabulka HumanResources.Department obsahuje čtyři sloupce: DepartmentID, Name, GroupNamea ModifiedDate.

A. Vytvoření souboru formátu XML pro data znaků

Následující příklad vytvoří soubor formátu XML, Department.xml, pro HumanResources.Department tabulku. Formátový soubor používá znakové datové formáty a neobvyklý ukončovací znak pole (,). Obsah vygenerovaného formátu souboru se zobrazí za příkazem.

Příkaz bcp obsahuje následující kvalifikátory.

Kvalifikátoři Popis
format nul -x -f <format_file> Určuje soubor formátu XML.
-c Určuje data znaků.
-t, Určuje jako ukončovací znak pole čárku (,).

Poznámka: Pokud datový soubor používá výchozí ukončovací znak pole (\t), -t přepínač není nutný.
-T Určuje, že nástroj bcp se připojí k SQL Serveru s důvěryhodným připojením pomocí integrovaného zabezpečení. Pokud není zadaný -T, musíte zadat -U a -P k úspěšnému přihlášení.

Na příkazovém řádku Windows zadejte následující příkaz bcp:

bcp AdventureWorks2022.HumanResources.Department format nul -c -x -f Department-c.xml -t, -T

Vygenerovaný formát souboru Department-c.xmlobsahuje následující elementy XML:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>
</RECORD>
<ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
</ROW>
</BCPFORMAT>

Informace o syntaxi tohoto formátu souboru naleznete v tématu XML Format Files (SQL Server). Informace o znakových datech najdete v tématu Použití formátu znaků k importu nebo exportu dat (SQL Server).

B. Vytvoření souboru formátu XML pro nativní data

Následující příklad vytvoří soubor formátu XML, Department-n.xml, pro HumanResources.Department tabulku. Formátovací soubor používá nativní datové typy. Obsah vygenerovaného formátu souboru se zobrazí za příkazem.

Příkaz bcp obsahuje následující kvalifikátory.

Kvalifikanti Popis
format nul -x -f <format_file> Určuje soubor formátu XML.
-n Určuje nativní datové typy.
-T Určuje, že nástroj bcp se připojí k Microsoft SQL Serveru pomocí důvěryhodného připojení s použitím integrovaného zabezpečení. Pokud není zadaný -T, musíte zadat -U a -P k úspěšnému přihlášení.

Na příkazovém řádku Windows zadejte následující příkaz bcp:

bcp AdventureWorks2022.HumanResources.Department format nul -x -f Department-n.xml -n -T

Vygenerovaný formát souboru Department-n.xmlobsahuje následující elementy XML:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
  <FIELD ID="1" xsi:type="NativeFixed" LENGTH="2"/>
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="NativeFixed" LENGTH="8"/>
</RECORD>
<ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
</ROW>
</BCPFORMAT>

Informace o syntaxi tohoto formátu souboru naleznete v tématu XML Format Files (SQL Server). Informace o tom, jak používat nativní data, naleznete v tématu Použití nativního formátu k importu nebo exportu dat (SQL Server).

Mapování datových polí na sloupce tabulky

Jak je vytvořen bcp, formátový soubor popisuje všechny sloupce tabulky v pořadí. Formátový soubor můžete upravit tak, aby se reorganizovaly, nebo vynechaly řádky tabulky. Formátový soubor můžete přizpůsobit datovému souboru, jehož pole se nemapuje přímo na sloupce tabulky. Další informace najdete v následujících článcích: