Určení formátů dat kompatibility při použití nástroje bcp (SQL Server)

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

Tento článek popisuje atributy formátu dat, výzvy specifické pro pole a ukládání dat pole po polích v souboru jiného formátu než XML souboru

Příkazbcp SQL Serveru. Pochopení může být užitečné, když hromadně exportujete data SQL Serveru pro hromadný import do jiného programu, například do jiného databázového programu. Výchozí formáty dat (nativní, znak nebo Unicode) ve zdrojové tabulce můžou být nekompatibilní s rozložením dat očekávaným jiným programem, pokud při exportu dat existuje nekompatibilitu, musíte popsat rozložení dat.

Poznámka:

Pokud neznáte formáty dat pro import nebo export dat, přečtěte si téma Formáty dat pro hromadný import nebo hromadný export (SQL Server).

bcp formátování dat – atributy

Příkaz bcp umožňuje zadat strukturu každého pole v datovém souboru z hlediska následujících atributů formátu dat:

  • Typ úložiště souborů

    Typ úložiště souborů popisuje, jak se data ukládají do datového souboru. Data lze exportovat do datového souboru jako typ tabulky databáze (nativní formát), ve znakové reprezentaci (znakový formát) nebo jako jakýkoli datový typ, kde je podporována implicitní konverze; například zkopírování smallint jako int. Uživatelem definované datové typy se exportují jako jejich základní typy. Další informace naleznete v tématu Určení typu úložiště souborů pomocí bcp (SQL Server).

  • Délka předpony

    Chcete-li poskytnout nejkomprimovanější úložiště souborů pro hromadný export dat v nativním formátu do datového souboru, příkaz bcp předchází každému poli jeden nebo více znaků, které označují délku pole. Tyto znaky se nazývají znaky předpony délky. Další informace naleznete v tématu Určení délky předpony v datových souborech pomocí bcp (SQL Server).

  • Délka pole

    Délka pole označuje maximální počet znaků, které jsou nutné k reprezentaci dat ve formátu znaků. Délka pole je již známa, pokud jsou data uložena v nativním formátu. Další informace naleznete v tématu Určení délky pole pomocí bcp (SQL Server).

  • Ukončovací znak pole

    U datových polí znaků umožňují volitelné ukončovací znaky označit konec každého pole v datovém souboru (pomocí ukončovače pole) a konec každého řádku (pomocí ukončovače řádku). Ukončovací znaky jsou jedním ze způsobů, jak označit programy, které čtou datový soubor, kde končí jedno pole nebo řádek a druhý začíná. Další informace naleznete v tématu Zadání oddělovačů pole a řádků (SQL Server).

Přehled výzev specifických pro obor

Pokud interaktivní příkaz bcp obsahuje možnost in nebo out, ale neobsahuje přepínač formátového souboru (-f) ani přepínače formátu dat (-n, -c, -w nebo -N), příkaz vyžádá postupně každý z těchto atributů pro každý sloupec ve zdrojové nebo cílové tabulce. Příkaz bcp v každém příkazovém řádku poskytuje výchozí hodnotu založenou na datovém typu SQL Serveru ve sloupci tabulky. Přijetí výchozí hodnoty pro všechny výzvy vytvoří stejný výsledek jako zadání nativního formátu (-n) na příkazovém řádku. Každá výzva zobrazí výchozí hodnotu v hranatých závorkách: [default]. Stisknutím klávesy ENTER se zobrazí výchozí nastavení. Pokud chcete zadat jinou hodnotu než výchozí, zadejte novou hodnotu na příkazovém řádku.

Example

Následující příklad používá příkaz bcp k hromadnému exportu HumanResources.myTeam dat z tabulky interaktivně do myTeam.txt souboru. Před spuštěním příkladu je nutné vytvořit tuto tabulku. Informace o tabulce a jejím vytvoření najdete v tématu HumanResources.myTeam Sample Table (SQL Server).

Příkaz určuje formátový soubor ani datový typ, což způsobí, že bcp zobrazí výzvu k zadání informací o formátu dat. Do příkazového řádku systému Microsoft Windows zadejte:

bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T

Pro každý sloupec bcp vyzve k zadání hodnot specifických pro pole. Následující příklad ukazuje výzvy specifické pro pole a EmployeeIDName sloupce tabulky a navrhne výchozí typ úložiště souborů (nativní formát) pro každý sloupec. Délky předpony EmployeeID a Name sloupce jsou 0 a 2. Uživatel jako ukončovací znak každého pole určuje čárku (,).

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

Ekvivalentní výzvy (podle potřeby) se zobrazí pro každý sloupec tabulky v pořadí.

Uložení dat pole po polích v souboru jiného formátu než XML

Po zadání všech sloupců tabulky vás příkaz bcp vyzve k volitelnému vygenerování souboru jiného formátu než XML, který ukládá informace o poli po polích, které jste právě zadali (viz předchozí příklad). Pokud se rozhodnete vygenerovat formátový soubor, můžete kdykoli exportovat data z této tabulky nebo importovat strukturovaná data do SQL Serveru.

Poznámka:

Formátovací soubor můžete použít k hromadnému importu dat z datového souboru do instance SQL Serveru nebo k hromadnému exportu dat z tabulky, aniž byste museli formát vyžadovat. Další informace naleznete v tématu Formát souborů pro import nebo export dat (SQL Server).

Následující příklad vytvoří soubor formátu jiného formátu než XML s názvem myFormatFile.fmt:

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

Výchozí název souboru formátu je bcp.fmt, ale pokud zvolíte, můžete zadat jiný název souboru.

Poznámka:

U datového souboru, který používá jeden datový formát pro typ úložiště souborů, například znak nebo nativní formát, můžete rychle vytvořit formátový soubor bez exportu nebo importu dat pomocí možnosti formátování . Tento přístup má výhody snadného vytvoření souboru ve formátu XML nebo souboru jiného formátu než XML. Další informace naleznete v tématu Vytvoření souboru formátu (SQL Server).

Žádné.

Další kroky