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.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
sql database v Microsoft Fabric
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; Například datový typ int přijímá 4 bajty. Pokud jste pro délku předpony označili hodnotu 0, příkaz bcp vás vyzve k zadání délky pole, výchozí délky polí a dopadu délky pole na datové úložiště v datových souborech, které obsahují data typu char .
Výzva bcp k zadání délky pole
Pokud interaktivní příkaz bcp obsahuje možnost in nebo out bez přepínače formátu souboru (-f) nebo přepínače formátu dat (-n, -c, -w nebo -N), příkaz se dotáže na délku každého datového pole následovně:
Enter length of field <field_name> [<default>]:
Příklad, který ukazuje tuto výzvu v kontextu, viz Určení formátů dat pro kompatibilitu při použití bcp (SQL Server).
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
Zda příkaz bcp vyžaduje zadání délky pole, závisí na několika faktorech:
Při kopírování datových typů, které nemají pevnou délku a zadáte délku předpony 0, bcp zobrazí výzvu k zadání délky pole.
Při převodu dat noncharacter na data znaků bcp navrhne výchozí délku pole dostatečně velkou pro uložení dat.
Pokud je typ úložiště souborů noncharacter, příkaz bcp nezobrazí výzvu k zadání délky pole. Data jsou uložena v nativní reprezentaci dat Microsoft SQL Serveru (nativní formát).
Použít výchozí délky polí
Microsoft obecně doporučuje přijmout výchozí hodnoty navrhované bcp pro délku pole. Při vytváření znakového datového souboru použití výchozí délky pole zajistí, že data nejsou oříznuta a nedochází k chybám přetečení čísel.
Pokud zadáte nesprávnou délku pole, může dojít k problémům. Pokud například kopírujete číselná data a zadáte délku pole, která je pro data příliš krátká, nástroj bcp vytiskne zprávu přetečení a data nezkopíruje. Pokud také exportujete data datetime a zadáte délku pole menší než 26 bajtů pro řetězec znaků, nástroj bcp zkrátí data bez chybové zprávy.
Důležité
Pokud se použije výchozí možnost velikosti, SQL Server očekává, že přečte celý řetězec. V některých situacích může použití výchozí délky pole vést k chybě "neočekávaný konec souboru". K této chybě obvykle dochází u datových typů money a datetime, pokud se v datovém souboru vyskytuje pouze část očekávaného pole; pokud je například zadána hodnota datetimemm/dd/yy bez časové komponenty a je tedy kratší než očekávaná 24znaková délka hodnoty datetime ve formátu char. Chcete-li se tomuto typu chyby vyhnout, použijte ukončovací nástavce polí nebo datová pole s pevnou délkou nebo změňte výchozí délku pole zadáním jiné hodnoty.
Výchozí délky pole pro ukládání souborů znaků
Následující tabulka uvádí výchozí délky polí pro ukládání dat jako typ úložiště typu znak-soubor. Nulovatelné údaje mají stejnou délku jako nenulová data.
| Datový typ | Výchozí délka (znaky) |
|---|---|
| znak | Délka definovaná pro sloupec |
| varchar | Délka definovaná pro sloupec |
| nchar | Dvakrát délka definovaná pro sloupec |
| nvarchar | Dvakrát délka definovaná pro sloupec |
| Text | 0 |
| ntext | 0 |
| bit | 1 |
| binary | Dvojnásobek délky definované pro sloupec + 1 |
| varbinary | Dvojnásobek délky definované pro sloupec + 1 |
| image | 0 |
| datetime | dvacet čtyři |
| smalldatetime | dvacet čtyři |
| float | 30 |
| skutečné | 30 |
| int | 12 |
| bigint | 19 |
| smallint | 7 |
| tinyint | 5 |
| peníze | 30 |
| málo peněz | 30 |
| decimal | 41 1 |
| číselný | 41 1 |
| uniqueidentifier | 37 |
| časová značka | 17 |
| varchar(max) | 0 |
| varbinary(max) | 0 |
| nvarchar(max) | 0 |
| UDT | Délka sloupce definovaného uživatelem (UDT) |
| XML | 0 |
| vector | Není k dispozici 2 |
1 Další informace o desetinných a číselných datových typech naleznete v tématu Desetinné a číselné (Transact-SQL).
2 Převod datového typu vektoru na a z znaku není povolen.
Poznámka:
Sloupec typu tinyint může mít hodnoty od 0 do 255; Maximální počet znaků potřebných k reprezentaci libovolného čísla v dané oblasti je tři (představující hodnoty 100 až 255).
Výchozí délky polí pro nativní úložiště souborů
Následující tabulka uvádí výchozí délky polí pro ukládání dat jako nativního typu úložiště souborů. Data s možnou hodnotou null mají stejnou délku jako nenulová data a znaková data se vždy ukládají ve formátu znaků.
| Datový typ | Výchozí délka (znaky) |
|---|---|
| bit | 1 |
| binary | Délka definovaná pro sloupec |
| varbinary | Délka definovaná pro sloupec |
| image | 0 |
| datetime | 8 |
| smalldatetime | 4 |
| float | 8 |
| skutečné | 4 |
| int | 4 |
| bigint | 8 |
| smallint | 2 |
| tinyint | 1 |
| peníze | 8 |
| málo peněz | 4 |
| decimal | 1 |
| číselný | 1 |
| uniqueidentifier | 16 |
| časová značka | 8 |
| vector | 8 bajtové vektorové záhlaví + velikost plovoucího pole |
1 Další informace o desetinných a číselných datových typech naleznete v tématu desetinné a číselné (Transact-SQL).
Ve všech předchozích případech vytvořte datový soubor pro pozdější opětovné načtení do SQL Serveru, který uchovává prostor úložiště na minimum, použijte předponu délky s výchozím typem úložiště a výchozí délkou pole.