Určení délky předpony v datových souborech pomocí bcp (SQL Server)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql database v Microsoft Fabric

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.

Výzva bcp k zadání délky předpony

Pokud interaktivní příkaz bcp obsahuje možnost in nebo out bez přepínače formátového souboru (-f) nebo přepínače formátu dat (-n, -c, -w nebo -N), příkazový řádek zobrazí délku předpony každého datového pole následujícím způsobem:

Enter prefix length of field <field_name> [<default>]:

Pokud zadáte hodnotu 0, bcp vás vyzve k zadání délky pole (pro datový typ znaků) nebo terminátoru pole (pro nativní neznakový typ).

Poznámka:

Jakmile interaktivně zadáte všechna pole v příkazu bcp, příkazový řádek uloží odpovědi pro každé pole v souboru bez formátu XML. Další informace o formátových souborech jiných než XML naleznete v tématu Soubory formátu JINÉ NEŽ XML (SQL Server).</a0>

Přehled délky předpony

Pokud chcete uložit délku předpony pole, potřebujete dostatek bajtů, které představují maximální délku pole. Počet požadovaných bajtů také závisí na typu úložiště souborů, na hodnotě null sloupce a na tom, jestli jsou data uložená v datovém souboru v nativním formátu nebo ve formátu znaků. Například datový typ textu nebo obrázku vyžaduje k uložení délky pole čtyři znaky předpony, ale datový typ varchar vyžaduje dva znaky. V datovém souboru jsou tyto znaky s délkou předpony uloženy ve vnitřním binárním datovém formátu SQL Serveru.

Důležité

Pokud používáte nativní formát, používejte místo ukončovačů polí délkové předpony. Data nativního formátu můžou být v konfliktu s ukončovacími moduly, protože datový soubor nativního formátu je uložený v interním binárním datovém formátu SQL Serveru.

Délky předpon pro hromadný export

Poznámka:

Výchozí hodnota, která je k dispozici na příkazovém řádku pro délku předpony při exportu pole, označuje nejúčinnější délku předpony pole.

Hodnoty Null jsou reprezentovány jako prázdné pole. Chcete-li označit, že pole je prázdné (představuje NULL), předpona pole obsahuje hodnotu -1; to znamená, že vyžaduje alespoň 1 bajt. Pokud sloupec tabulky SQL Serveru umožňuje hodnoty null, sloupec vyžaduje délku předpony 1 nebo vyšší v závislosti na typu úložiště souborů.

Při hromadném exportu dat a jejich uložení v nativních datových typech nebo ve formátu znaků použijte délky předpony uvedené v následující tabulce.

SQL Server
datový typ
Nativní formát
NOT NULL
Nativní formát
NULL
Formát znaků
NOT NULL
Formát znaků
NULL
znak 2 2 2 2
varchar 2 2 2 2
nchar 2 2 2 2
nvarchar 2 2 2 2
Text* 4 4 4 4
Ntext* 4 4 4 4
binary 2 2 2 2
varbinary 2 2 2 2
Obrázek* 4 4 4 4
datetime 0 1 0 1
smalldatetime 0 1 0 1
decimal 1 1 1 1
číselný 1 1 1 1
float 0 1 0 1
skutečné 0 1 0 1
int 0 1 0 1
bigint 0 1 0 1
smallint 0 1 0 1
tinyint 0 1 0 1
peníze 0 1 0 1
málo peněz 0 1 0 1
bit 0 1 0 1
uniqueidentifier 1 1 0 1
časová značka 1 1 1 1
varchar(max) 8 8 8 8
varbinary(max) 8 8 8 8
UDT (uživatelem definovaný datový typ) 8 8 8 8
XML 8 8 8 8
sql_variant 8 8 8 8
vector 2 2 N/A N/A
  • ntext, text a image datové typy se odeberou v budoucí verzi SQL Serveru. Vyhněte se používání těchto datových typů v nové vývojové práci a naplánujte úpravu aplikací, které je aktuálně používají. Místo toho použijte nvarchar(max), varchar(max)a varbinary(max).

Délky předpon pro hromadný import

Při hromadném importu dat je délka předpony hodnotou, která byla zadána při původním vytvoření datového souboru. Pokud nebyl datový soubor vytvořen příkazem bcp , znaky předpony délky pravděpodobně neexistují. V tomto případě zadejte hodnotu 0 pro délku předpony.

Poznámka:

Pokud chcete zadat délku předpony v datovém souboru, který nebyl vytvořen pomocí nástroje bcp, použijte délky uvedené v části Délky předpon pro hromadný export, dříve v tomto tématu.