Vytvoření formátu souboru pomocí bcp (SQL Server)
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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
, -w
nebo -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
, GroupName
a 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.xml
obsahuje 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.xml
obsahuje 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:
- Přeskočit sloupec tabulky (SQL Server) pomocí formátového souboru
- Použití formátu souboru k přeskočení datového pole (SQL Server)
- Mapování sloupců tabulky na pole datových souborů (SQL Server) pomocí formátového souboru