Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při hromadném importu dat do tabulky SQL Serveru nebo hromadného exportu dat z tabulky můžete pomocí formátového souboru uložit všechny informace o formátu potřebné k hromadnému exportu nebo hromadnému importu dat. To zahrnuje informace o formátu pro každé pole v datovém souboru vzhledem k této tabulce.
SQL Server podporuje dva typy formátových souborů: formáty XML a soubory jiného formátu než XML. Formátové soubory jiného formátu než XML i soubory formátu XML obsahují popisy všech polí v datovém souboru a soubory formátu XML také obsahují popisy odpovídajících sloupců tabulky. Obecně platí, že soubory formátu XML a jiné než XML jsou zaměnitelné. Doporučujeme však použít syntaxi XML pro nové formátové soubory, protože poskytují několik výhod oproti souborům bez formátu XML. Další informace naleznete 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.
Výhody formátovaných souborů
Formátové soubory poskytují flexibilní systém pro zápis datových souborů, které vyžadují minimální nebo žádné úpravy, aby vyhovovaly jiným datovým formátům nebo ke čtení datových souborů z jiného softwaru.
Hromadný import dat můžete bez nutnosti přidávat nebo odstraňovat nepotřebná data nebo měnit pořadí existujících dat v datovém souboru. Formátovací soubory můžou být užitečné, když existuje neshoda mezi poli v datovém souboru a sloupci v tabulce.
Příklady formátovaných souborů
Následující příklady ukazují rozložení souboru jiného formátu než XML a souboru formátu XML. Tyto soubory formátu odpovídají HumanResources.myTeam tabulce v AdventureWorks2025 ukázkové databázi. Tato tabulka obsahuje čtyři sloupce: EmployeeID, Name, Titlea ModifiedDate.
Poznámka:
Informace o této tabulce a jejím vytvoření naleznete v tématu HumanResources.myTeam sample table (SQL Server).
A. Použití souboru jiného formátu než XML
Následující soubor formátu jiného formátu než XML používá nativní datový formát SQL Serveru pro HumanResources.myTeam tabulku. Tento formátový soubor byl vytvořen pomocí následujícího bcp příkazu.
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T
Příkaz bcp se ve výchozím nastavení nastaví na místní výchozí instanci SQL Serveru s ověřováním systému Windows. Podle potřeby můžete zadat další instance a přihlašovací údaje. Další informace najdete v nástroji bcp. Pokud chcete například zadat vzdálený server pojmenovaný jako instance s použitím ověřování systému Windows, použijte:
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T -S servername/instancename
Obsah tohoto souboru formátu je následující, počínaje hlavním číslem verze SYSTÉMU SQL Server a informacemi o metadatech tabulky.
14.0
4
1 SQLSMALLINT 0 2 "" 1 EmployeeID ""
2 SQLNCHAR 2 100 "" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 100 "" 3 Title SQL_Latin1_General_CP1_CI_AS
4 SQLNCHAR 2 100 "" 4 Background SQL_Latin1_General_CP1_CI_AS
Další informace naleznete v tématu Použití souborů formátu JINÉ NEŽ XML (SQL Server).
B. Použití souboru formátu XML
Následující soubor formátu XML používá nativní datový formát SQL Serveru pro HumanResources.myTeam tabulku. Tento formátový soubor byl vytvořen pomocí následujícího bcp příkazu.
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.xml -x -n -T
Formát souboru obsahuje:
<?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="NativePrefix" LENGTH="1"/>
<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="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="EmployeeID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="Title" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="Background" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
Další informace naleznete v tématu Soubory formátu XML (SQL Server).
Kdy se vyžaduje formátový soubor?
Formátovací soubory se obvykle vyžadují za následujících okolností:
Když použijete příkaz
INSERT ... SELECT * FROM OPENROWSET(BULK...).Pro složité situace hromadného importu pomocí bcp nebo
BULK INSERT.Stejný datový soubor se používá jako zdroj pro více tabulek, které mají různá schémata.
Datový soubor má odlišný počet polí než má cílová tabulka sloupců; například:
- Cílová tabulka obsahuje alespoň jeden sloupec, pro který je definována výchozí hodnota nebo
NULLje povolená. - Uživatelé nemají
SELECT/INSERToprávnění k jednomu nebo více sloupcům v tabulce. - Jeden datový soubor se používá se dvěma nebo více tabulkami, které mají různá schémata.
- Cílová tabulka obsahuje alespoň jeden sloupec, pro který je definována výchozí hodnota nebo
Pořadí sloupců se u datového souboru a tabulky liší.
Koncové znaky nebo délky předpony se liší mezi sloupci datového souboru.
Poznámka:
Pokud není k dispozici soubor formátu, a příkaz bcp určuje přepínač formátu dat (-n, -c, -w nebo -N) nebo operace BULK INSERT určuje možnost DATAFILETYPE, použije se zadaný datový formát jako výchozí metoda interpretace polí datového souboru.
Související úkoly
- Použití nativního souboru BCP nebo souboru s formátováním versus textový soubor a kódování BOM
- Použití souborů bez formátu XML (SQL Server)
- Soubory formátu XML (SQL Server)
- Formáty dat pro hromadný import nebo hromadný export (SQL Server)
- Vytvoření formátu souboru pomocí bcp (SQL Server)