nástroj bcp

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Nástroj programu hromadného kopírování (bcp) kopíruje data mezi instancí SQL Serveru a datovým souborem v uživatelsky určeném formátu.

Nástroj bcp slouží k importu velkého počtu nových řádků do tabulek SQL Serveru nebo k exportu dat z tabulek do datových souborů. Kromě použití s možností queryout nástroj nevyžaduje žádné znalosti jazyka Transact-SQL. Pokud chcete importovat data do tabulky, musíte použít formátový soubor vytvořený pro danou tabulku nebo porozumět struktuře tabulky a typům dat, která jsou platná pro jeho sloupce.

Další informace o tom, která verze bcp je nainstalována v systému, požadavky na systém a jak získat bcp, naleznete v tématu Stažení a instalace nástroje bcp.

Note

Datové soubory bcp neobsahují žádné informace o schématu ani formátu. Pokud použijete bcp k zálohování dat a později zahodíte nebo změníte zdrojovou tabulku, budete potřebovat buď identickou definici tabulky, nebo formátový soubor pro import dat zpět.

Konvence syntaxe používané pro syntaxi bcp najdete v tématu Transact-SQL konvence syntaxe (Transact-SQL).

Jak používat bcp

Informace o tom, jak používat bcp, včetně ukázkových příkazů, naleznete v tématu Použití nástroje bcp.

Použití nástroje bcp v Linuxu a macOS

Informace o tom, jak nainstalovat nástroje příkazového řádku v systémech macOS a Linux, najdete v tématu Instalace nástrojů příkazového řádku sqlcmd a bcp SQL Serveru v Linuxu.

Důležité informace o bcp v Linuxu a macOS

  • Ukončovací znak pole je tabulátor (\t).

  • Ukončovací znak řádku je nový řádek (\n).

  • Pro přenosy SQL Serveru na SQL Server použijte nativní formát (-n). Formát znaků (-c) použijte pouze v případě, že data přejdou do systému jiného než SQL Serveru nebo pokud datový soubor nesmí obsahovat rozšířené znaky. Další informace naleznete v tématu Režim znaků a osvědčené postupy nativního režimu.

  • Argument příkazového řádku musíte uzavřít do uvozovek nebo escapovat zpětné lomítko (\). Pokud chcete například zadat nový řádek jako vlastní ukončovací znak řádku, použijte jeden z následujících mechanismů:

    • -r\\n
    • -r"\n"
    • -r'\n'

Podpora TDS 8.0

SQL Server 2025 (17.x) zavádí podporu TDS 8.0 pro nástroj bcp .

Syntax

bcp [ database_name. ] schema. { table_name | view_name | "query" }
    { in data_file | out data_file | queryout data_file | format nul }

    [ -a packet_size ]
    [ -b batch_size ]
    [ -c ]
    [ -C { ACP | OEM | RAW | code_page } ]
    [ -d database_name ]
    [ -D ]
    [ -e err_file ]
    [ -E ]
    [ -f format_file ]
    [ -F first_row ]
    [ -G Microsoft Entra authentication ]
    [ -h"hint [ , ...n ] " ]
    [ -i input_file ]
    [ -k ]
    [ -K application_intent ]
    [ -l login_timeout ]
    [ -L last_row ]
    [ -m max_errors ]
    [ -n ]
    [ -N ]
    [ -o output_file ]
    [ -P password ]
    [ -q ]
    [ -r row_term ]
    [ -R ]
    [ -S [ server_name [ \instance_name ] ] ]
    [ -t field_term ]
    [ -T ]
    [ -U login_id ]
    [ -u ]
    [ -v ]
    [ -V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170) ]
    [ -w ]
    [ -x ]
    [ -Y [ s | m | o ] ]
    [ -z ]

Možnosti příkazového řádku

Následující tabulka uvádí možnosti příkazového řádku dostupné v bcpa operační systémy, které podporují.

Možnost příkazového řádku Podporováno ve Windows Podporováno v Linuxu a macOS
Režim objektu a přenosu
[database_name.]schéma.{table_name | view_name | "query"} Ano Ano
{indata_file | outdata_file | queryoutdata_file | format nul} Ano Ano
-q Ano Ano
Připojení a ověřování
-S [server_name[\instance_name]] Ano Ano
-d database_name Ano Ano
-U login_id Ano Ano
-P heslo Ano Ano
-G ověřování Microsoft Entra Ano Ano
-D Ano Ano
-K application_intent Ano Ano
-l login_timeout Ano Ano
-T Ano Ano
-Y[s| m| o] Ano 1 Ano 1
Reprezentace dat
-c Ano Ano
-C { ACP | OEM | RAW | code_page } Ano Ne
-n Ano Ano
-N Ano Ne
-w Ano Ano
-z Ne Ano 2
Formátování souborů
-f format_file Ano Ano
-x Ano Ne
Dávkování a výkon
-packet_size Ano Ano
-b batch_size Ano Ano
-h"hint [,... n]" Ano Ne
-m max_errors Ano Ano
-F first_row Ano Ano
-L last_row Ano Ano
-r row_term Ano Ano
-t field_term Ano Ano
Zpracování hodnot
-k Ano Ano
-E Ano Ano
Vstupně-výstupní operace a protokolování souborů
-i input_file Ano Ne
-o output_file Ano Ne
-e err_file Ano Ano
Kompatibilita a správa verzí
-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 ) Ano Ne
-u Ano 1 Ano 1
Různé možnosti
-R Ano Ano
-v Ano Ano

1 Vyžaduje bcp verze 18 nebo novější, která se dodává s SQL Serverem 2025 (17.x).
2 ODBC 18.6.1.1 a novější verze.

Režim objektu a přenosu

database_name

Název databáze, která obsahuje zadanou tabulku nebo zobrazení. Pokud tento parametr nezadáte, použije se výchozí databáze uživatele.

Můžete také explicitně zadat název databáze pomocí -d.

schema

Jméno vlastníka tabulky nebo zobrazení. schéma je volitelné, pokud uživatel provádějící operaci vlastní zadanou tabulku nebo zobrazení. Pokud nezadáte schéma a uživatel provádějící operaci nevlastní zadanou tabulku nebo zobrazení, sql Server vrátí chybovou zprávu a operace se zruší.

table_name

Název cílové tabulky při importu dat do SQL Serveru (in) a zdrojové tabulky při exportu dat z SQL Serveru (out).

view_name

Název cílového zobrazení při kopírování dat do SQL Serveru (in) a zdrojového zobrazení při kopírování dat z SQL Serveru (out). Pokud se používá jako cíl (in), zobrazení se podporuje jenom v případě, že všechny jeho sloupce odkazují na stejnou tabulku. Toto omezení neplatí, pokud se zobrazení používá jako zdroj (out). Další informace o omezeních kopírování dat do zobrazení najdete v sekci INSERT.

"query"

Dotaz Transact-SQL, který vrátí sadu výsledků. Pokud dotaz vrátí více sad výsledků, zkopíruje se do datového souboru pouze první sada výsledků; následující sady výsledků jsou ignorovány. Kolem dotazu použijte dvojité uvozovky a jednoduché uvozovky kolem všeho, co je v dotazu vložené. Musíte také určit queryout , kdy hromadně kopírujete data z dotazu.

Dotaz může odkazovat na uloženou proceduru, pokud existují všechny tabulky odkazované uvnitř uložené procedury před provedením příkazu bcp. Pokud například uložená procedura generuje dočasnou tabulku, příkaz bcp selže, protože dočasná tabulka je k dispozici pouze za běhu a ne v době provádění příkazu. V takovém případě zvažte vložení výsledků uložené procedury do tabulky a následné použití bcp ke zkopírování dat z tabulky do datového souboru.

v

Zkopíruje data ze souboru do databázové tabulky nebo zobrazení. Určuje směr hromadného kopírování.

out

Zkopíruje data z databázové tabulky nebo zobrazení do souboru. Určuje směr hromadného kopírování.

Pokud zadáte existující soubor, soubor se přepíše. Když nástroj bcp extrahuje data, reprezentuje prázdný řetězec jako null a null řetězec jako prázdný.

data_file

Úplná cesta k datovému souboru. Při hromadném importu dat do SQL Serveru obsahuje datový soubor data, která chcete zkopírovat do zadané tabulky nebo zobrazení. Při hromadném exportu dat z SQL Serveru obsahuje datový soubor data zkopírovaná z tabulky nebo zobrazení. Cesta může mít 1 až 255 znaků. Datový soubor může obsahovat maximálně 2^63 – 1 řádky.

queryout

Kopíruje data z dotazu a musí být zadána pouze při hromadném kopírování dat z dotazu.

format

Vytvoří formátový soubor na základě zadané možnosti (-n, -c, -wnebo -N) a oddělovačů tabulky nebo zobrazení. Při hromadném kopírování dat může příkaz bcp odkazovat na formátový soubor, který vás zbaví nutnosti interaktivně zadávat informace o formátu. Tato format možnost vyžaduje -f možnost. Vytvoření souboru formátu XML také vyžaduje možnost -x . Další informace naleznete v tématu Vytvoření formátu souboru s bcp (SQL Server). Je nutné zadat nul jako hodnotu (format nul).

-q

Spustí příkaz SET QUOTED_IDENTIFIER ON v připojení mezi nástrojem bcp a instancí SQL Serveru. Pomocí této možnosti můžete zadat databázi, vlastníka, tabulku nebo název zobrazení, který obsahuje mezeru nebo jednoduchou uvozovku. Uzavřete celý název tabulky nebo zobrazení, který má tři části, do uvozovek ("").

Chcete-li zadat název databáze obsahující mezeru nebo jednoduchou uvozovku, musíte použít možnost -q.

-q se nevztahuje na hodnoty předané -d.

Další informace najdete v části Poznámky v tomto článku.

Připojení a ověřování

-S [server_name[\instance_name]]

Určuje název instance SQL Serveru, ke které se chcete připojit, nebo pokud používáte -Dnázev DSN.

Pokud neurčíte server, nástroj bcp se připojí k výchozí instanci SQL Serveru na místním počítači. Tuto možnost potřebujete při spuštění příkazu bcp ze vzdáleného počítače v síti nebo místní pojmenované instance. Pokud se chcete připojit k výchozí instanci SQL Serveru na serveru, zadejte pouze server_name. Pokud se chcete připojit k pojmenované instanci SQL Serveru, zadejte <server_name>\<instance_name>.

-d database_name

Určuje databázi, ke které se má připojit. Ve výchozím nastavení se bcp připojí k vaší výchozí databázi. Pokud zadáte -d <database_name> a tříčástný název (database_name.schema.table jako první parametr předaný do bcp), dojde k chybě, protože název databáze nelze zadat dvakrát. Pokud database_name začíná spojovníkem (-) nebo lomítkem (/), nepřidávejte mezeru mezi -d a názvem databáze.

-U login_id

Určuje přihlašovací ID použité pro připojení k SQL Serveru.

-P heslo

Určuje heslo pro přihlašovací ID. Pokud tuto možnost nepoužíváte, příkaz bcp zobrazí výzvu k zadání hesla. Pokud použijete tuto možnost na konci příkazového řádku bez hesla, použije bcp výchozí heslo (NULL).

Important

Nepoužívejte prázdné heslo. Použijte silné heslo.

Pokud chcete heslo maskovat, nezadávejte možnost -P spolu s možností -U. Místo toho po zadání bcp spolu s -U možností a dalšími přepínači (nezadávejte -P), stiskněte klávesu Enter a příkazový řádek vás vyzve k zadání hesla. Tato metoda zajišťuje maskování hesla při jeho zadání.

Pokud heslo začíná pomlčkou () nebo lomítkem (), nepřidávejte mezeru mezi a hodnotou hesla .

Při použití s -G volbou bez -U, -P na Linuxu a macOS určuje soubor, který obsahuje přístupový token Microsoft Entra (verze 17.8 a novější). Soubor tokenu by měl být ve formátu UTF-16LE (bez BOM). Další informace naleznete v tématu Ověřování pomocí Microsoft Entra ID v bcp.

-G

Platí pro: Azure SQL Database, Azure SQL Managed Instance, SQL Database v Microsoft Fabric, Azure Synapse Analytics a SQL Server 2022 (16.x) a novější verze.

Tento přepínač používá klient k určení, že se uživatel ověřuje pomocí ID Microsoft Entra. Přepínač -G vyžaduje bcp verze 14.0.3008.27 nebo novější. Pokud chcete zjistit verzi, spusťte bcp -v. Další informace naleznete v tématu Použití ověřování Microsoft Entra s SQL Database nebo Azure Synapse Analytics nebo ověřování v databázi SQL v Microsoft Fabric.

Úplné podrobnosti o ověřování Microsoft Entra v bcp naleznete v tématu Ověřování pomocí Microsoft Entra ID v bcp.

-D

Způsobí, že se hodnota předaná bcp -S možnosti interpretuje jako název zdroje dat (DSN). -D se může objevit kdekoli na příkazovém řádku; řazení vzhledem k -S na tom nezáleží.

DsN lze použít k:

  • Možnosti ovladače vložit pro zjednodušení příkazových řádků.
  • Vynucujte možnosti ovladače, které nejsou jinak přístupné z příkazového řádku, například MultiSubnetFailover.
  • Pomozte chránit citlivé přihlašovací údaje před zjistitelnými jako argumenty příkazového řádku.

Další informace najdete v tématu Podpora DSN v sqlcmd a bcp.

-K application_intent

Deklaruje typ úlohy aplikace při připojování k serveru. Jedinou možnou hodnotou je ReadOnly. Pokud ho nezadáte -K, nástroj bcp nepodporuje připojení k sekundární replice ve skupině dostupnosti AlwaysOn. Další informace najdete v tématu Přenesení úlohy pouze pro čtení na sekundární replikát skupiny dostupnosti Always On.

-l časový limit přihlášení

Určuje časový limit přihlášení. Možnost -l určuje počet sekund před vypršením časového limitu přihlášení k SQL Serveru při pokusu o připojení k serveru. Výchozí časový limit přihlášení je 15 sekund. Časový limit přihlášení musí být číslo od 0 do 65534. Pokud zadaná hodnota není číselná nebo nepatří do této oblasti, nástroj bcp vygeneruje chybovou zprávu. Hodnota 0 určuje nekonečný časový limit.

-T

Určuje, že utilita bcp se připojuje k SQL Serveru pomocí důvěryhodného připojení s integrovaným zabezpečením. Přihlašovací bezpečnostní údaje síťového uživatele, login_ida heslo, nejsou povinné. Pokud nezadáte -T, musíte zadat -U a -P, aby se připojení zdařilo.

Important

Používejte -T pouze při připojování k SQL Serveru s důvěryhodným připojením integrovaným ve Windows. Při připojování ke službě Azure SQL Database nebo Azure Synapse Analytics -T (integrované ověřování Windows) není podporováno. Pro ověřování Microsoft Entra pro služby Azure nebo SQL Server 2022 (16.x) a novější verze použijte -G (viz Ověření pomocí Microsoft Entra ID v bcp).

-Y[s|m|o]

Platí pro: bcp verze 18 a novější verze, které se dodává s SQL Serverem 2025 (17.x).

Určuje, jestli připojení používají šifrování TLS přes síť. -Y může být o (pro Optional), m (pro Mandatory, výchozí) nebo s (pro Strict). Pokud nezadáte -Y, -Ym je výchozí hodnota (for Mandatory).

-u

Platí pro: bcp verze 18 a novější verze, které se dodává s SQL Serverem 2025 (17.x).

Důvěřovat certifikátu serveru. Pokud se používá s možností šifrování pro připojení, povolí šifrování pomocí certifikátu serveru podepsaného svým držitelem.

Reprezentace dat

-c

Provádí operaci používající datový typ znaku. Tato možnost nevyžaduje potvrzení pro každé pole. Jako typ úložiště používá znak bez předpon a jako oddělovač polí používá \t znak (znak tabulátoru) a \r\n jako ukončovací znak řádku (znak nového řádku). -c není kompatibilní s -w.

Další informace naleznete v tématu Použití formátu znaků k importu nebo exportu dat (SQL Server).

Osvědčené postupy najdete v tématu Režim znaků a osvědčené postupy nativního režimu.

-C { ACP | OEM | RAW | code_page }

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Určuje znakovou stránku dat v datovém souboru. code_page je relevantní pouze v případě, že data obsahují char, varcharnebo text sloupce s hodnotami většími než 127 nebo menšími než 32.

Zadejte název kolace pro každý sloupec ve formátu souboru s výjimkou případů, kdy chcete, aby měla možnost 65001 prioritu oproti specifikaci kolace nebo znakové stránky.

Hodnota kódové stránky Description
ACP ANSI/Microsoft Windows (ISO 1252).
OEM Výchozí znaková stránka používaná klientem Tato znaková stránka je výchozí, pokud nezadáte -C.
RAW Nedojde k žádnému převodu z jedné znakové stránky na jinou. Tato možnost je nejrychlejší, protože nedojde k žádnému převodu.
<code_page> Konkrétní číslo znakové stránky, například 850.

Verze před SQL Serverem 2016 (13.x) nepodporují kódovou stránku 65001 (kódování UTF-8). Verze začínající verzí 13 můžou importovat kódování UTF-8 do starších verzí SQL Serveru.

-n

Provede operaci hromadného kopírování pomocí nativních datových typů dat (databáze). Tato možnost nezobrazí výzvu pro každé pole. Používá nativní hodnoty.

Další informace naleznete v tématu Použití nativního formátu k importu nebo exportu dat (SQL Server).

Osvědčené postupy najdete v tématu Režim znaků a osvědčené postupy nativního režimu.

-N

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Provede hromadné kopírování využívající nativní (databázové) datové typy pro neznaková data a znaky Unicode pro znaková data. Tato možnost nabízí vyšší výkonovou alternativu k možnosti -w a je určená k přenosu dat z jedné instance SQL Serveru do jiného pomocí datového souboru. Systém nezobrazí výzvu pro každé pole. Tuto možnost použijte při přenosu dat obsahujících rozšířené znaky ANSI a chcete využít výkon nativního režimu.

Další informace najdete v tématu Použití nativního formátu Unicode k importu nebo exportu dat (SQL Server).

Pokud exportujete a poté importujete data do stejného schématu tabulky pomocí bcp s -N, může se zobrazit upozornění na zkrácení, je-li zde sloupec s pevnou délkou bez unicode znaků (například CHAR(10)).

Upozornění můžete ignorovat. Jedním ze způsobů, jak toto upozornění vyřešit, je použít -n místo -N.

-w

Provede operaci hromadného kopírování pomocí znaků Unicode. Tato možnost nezobrazí výzvu pro každé pole. Jako typ úložiště používá nchar, žádné předpony, \t (znak tabulátoru) jako oddělovač polí a \n (znak nového řádku) jako ukončovací znak řádku. -w není kompatibilní s -c.

Další informace naleznete v tématu Použití formátu znaků Unicode k importu nebo exportu dat (SQL Server).

-z

Platí pouze pro: bcp (ODBC), Linux a macOS. Windows se nepodporuje.

Povolí podporu vektorových datových typů v nástroji bcp . Tato funkce je ve výchozím nastavení zakázaná. Pokud je tato možnost zakázaná, vektorová data se naimportují nebo exportují jako řetězce pole float JSON. Při povolení a při připojování k SQL Serveru 2025 (17.x) a novějších verzích se vektorová data importují nebo exportují v binárním nativním vektoru .

Formátování souborů

-f format_file

Určuje úplnou cestu k souboru formátu. Význam této možnosti závisí na prostředí, ve kterém se používá, následujícím způsobem:

  • Pokud použijete -f s format možností, vytvoří se zadaný format_file pro zadanou tabulku nebo zobrazení. Chcete-li vytvořit soubor formátu XML, zadejte také možnost -x. Další informace naleznete v tématu Vytvoření formátu souboru s bcp (SQL Server).

  • Pokud používáte -f s možností in nebo out, je třeba existující formátový soubor.

    Note

    Použití souboru s formátem pomocí možnosti in nebo out je volitelné. Pokud nezadáte možnost -f a nezadáte -n, -c, -w nebo -N, příkaz vás vyzve k zadání informací o formátu a umožní uložit vaše odpovědi do souboru formátu. Výchozí název souboru je bcp.fmt.

Pokud format_file začíná pomlčkou (-) nebo lomítkem (/), nezahrnujte mezeru mezi -f a hodnotou format_file.

-x

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Tuto možnost použijte s možnostmi format a -fformat_file . Vygeneruje soubor formátu založený na jazyce XML namísto výchozího souboru formátu jiného než XML. Tato -x možnost nefunguje při importu nebo exportu dat. Vygeneruje chybu, pokud se používá bez format i -fformat_file.

Dávkování a výkon

-packet_size

Určuje počet bajtů pro každý síťový paket, který klient odesílá na server a přijímá ze serveru. Tuto možnost konfigurace serveru nastavte pomocí aplikace SQL Server Management Studio nebo sp_configure systémové uložené procedury. Možnost konfigurace serveru však můžete přepsat jednotlivě pomocí této možnosti. packet_size může být od 4 096 bajtů do 65 535 bajtů. Výchozí hodnota je 4096.

Zvýšení velikosti paketů může zlepšit výkon operací hromadného kopírování. Pokud požadujete větší paket, ale server ho nemůže udělit, použije se výchozí hodnota. Statistika výkonu, kterou nástroj bcp generuje, zobrazuje použitou velikost paketu.

-b batch_size

Určuje počet řádků na dávku importovaných dat. Každá dávka se naimportuje a zaprotokoluje jako samostatná transakce, která před potvrzením importuje celou dávku. Ve výchozím nastavení nástroj bcp naimportuje všechny řádky v datovém souboru jako jednu dávku. Chcete-li distribuovat řádky mezi více dávek, zadejte batch_size, která je menší než počet řádků v datovém souboru. Pokud transakce u libovolné dávky selže, zruší se pouze vložené položky z aktuální dávky. Dávky, které jsou již importovány potvrzenými transakcemi, nejsou ovlivněny pozdějším selháním.

-b a -h "ROWS_PER_BATCH=<bb>" rada se vzájemně vylučují. Použijte -b, pokud chcete, aby bcp explicitně řídilo dávkování, nebo použijte ROWS_PER_BATCH, abyste naznačili optimalizátoru serveru odeslání dat jako jednotlivé transakce.

-h "rady [, ... n]"

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Určuje nápovědu nebo rady, které se mají použít při hromadném importu dat do tabulky nebo zobrazení.

  • SEŘADIT (sloupec [ASC | DESC] [, ...n])

    Pořadí řazení dat v datovém souboru Výkon hromadného importu se zlepší, pokud se importovaná data seřadí podle clusterovaného indexu v tabulce( pokud existuje). Pokud je datový soubor seřazený v jiném pořadí, to znamená jiné než pořadí clusterovaného indexového klíče nebo pokud v tabulce není žádný clusterovaný index, bude klauzule ORDER ignorována. Zadané názvy sloupců musí být platné názvy sloupců v cílové tabulce. Ve výchozím nastavení bcp předpokládá, že datový soubor není seřazený. Pro optimalizovaný hromadný import SQL Server také ověří, že jsou importovaná data seřazená.

  • ROWS_PER_BATCH = bb

    Počet řádků dat na dávku (jako bb). Používá se, když nezadáte -b, což vede k tomu, že se celý datový soubor odesílá na server jako jedna transakce. Server optimalizuje hromadnou zátěž podle hodnoty bb. Ve výchozím nastavení je ROWS_PER_BATCH neznámý.

  • KILOBYTES_PER_BATCH = cc

    Přibližný počet kilobajtů dat na dávku (cc). Ve výchozím nastavení je KILOBYTES_PER_BATCH neznámý.

  • TABLOCK

    Určuje, že se během operace hromadného načítání získá zámek na úrovni tabulky; jinak se získá zámek na úrovni řádku. Tento tip výrazně zvyšuje výkon, protože držení zámku během operace hromadného kopírování snižuje kolize zámků v tabulce. Tabulku můžete načíst souběžně z více klientů, pokud tabulka neobsahuje žádné indexy a TABLOCK je zadána. Ve výchozím nastavení možnost tabulky table lock on bulkload určuje chování uzamčení. Další informace viz sp_tableoption.

    Note

    Pokud je cílová tabulka shlukovaný columnstore index, není vyžadována TABLOCK nápověda pro načítání více souběžnými klienty, protože každému souběžnému vláknu je přiřazena samostatná skupina řádků v rámci indexu, do které načítá data. Další informace najdete v článku Indexy columnstore: přehled.

  • CHECK_CONSTRAINTS

    Určuje, že všechna omezení cílové tabulky nebo zobrazení musí být kontrolována během operace hromadného importu. Bez nápovědy CHECK_CONSTRAINTS se všechny CHECK a FOREIGN KEY omezení ignorují a po operaci se omezení v tabulce označí jako nedůvěryhodné.

    Note

    UNIQUE, PRIMARY KEYa NOT NULL omezení se vždy vynucují.

    V určitém okamžiku je potřeba zkontrolovat omezení celé tabulky. Pokud byla tabulka před hromadným importem neprázdná, náklady na opětovné ověření omezení mohou překročit náklady na použití CHECK omezení na přírůstková data. Proto můžete obvykle povolit kontrolu omezení během přírůstkového hromadného importu.

    Situace, kdy můžete chtít zakázat omezení (výchozí chování), je situace, kdy vstupní data obsahují řádky, které porušují omezení. Zakázáním CHECK omezení můžete importovat data a potom pomocí příkazů Transact-SQL odebrat data, která nejsou platná.

    Note

    Přepínač -mmax_errors se nevztahuje na kontrolu omezení.

  • FIRE_TRIGGERS

    Když tuto možnost zadáte pomocí v argumentu, všechny triggery vložení definované v cílové tabulce se spustí během operace hromadného kopírování. Pokud nezadáte FIRE_TRIGGERS, nespustí se žádné triggery vložení. FIRE_TRIGGERS se ignoruje pro argumenty out, queryouta format.

-m maximální_počet_chyb

Určuje maximální počet chyb syntaxe, ke kterým může dojít před zrušením operace bcp. Chyba syntaxe znamená chybu převodu dat na cílový datový typ. Celkový součet max_errors vylučuje všechny chyby, které může server rozpoznat, například porušení omezení.

Řádek, který nástroj bcp nemůže kopírovat, se ignoruje a počítá se jako jedna chyba. Pokud tuto možnost nezadáte, výchozí hodnota je 10.

Note

Tato -m možnost se nevztahuje při převodu datových typů money nebo bigint.

-F první_řádek

Určuje počet prvního řádku, který se má exportovat z tabulky nebo importovat z datového souboru. Tento parametr vyžaduje hodnotu větší než (>) 0, ale menší než (<) nebo rovno celkovému počtu řádků. Pokud tento parametr nezadáte, je výchozím řádkem souboru první řádek.

first_row může být kladné celé číslo s hodnotou až 2^63-1. -F first_row používá číslování založené na 1.

-L poslední_řádek

Určuje počet posledního řádku, který se má exportovat z tabulky nebo importovat z datového souboru. Tento parametr vyžaduje hodnotu větší než (>) 0, ale menší než (<) nebo rovnou číslu posledního řádku. Pokud tento parametr nezadáte, je výchozím řádkem souboru poslední řádek.

last_row může být kladné celé číslo s hodnotou až 2^63-1.

-r row_term

Určuje ukončovací znak řádku. Výchozí hodnota je \n (znak nového řádku). Tento parametr použijte k nahrazení výchozího oddělovače řádku. Další informace naleznete v tématu Zadání ukončovačů polí a řádků (SQL Server).

Pokud zadáte ukončovací znak řádku v šestnáctkovém zápisu v příkazu bcp, hodnota bude zkrácena v 0x00. Pokud například zadáte 0x410041, použije se 0x41.

Pokud row_term začíná pomlčkou (-) nebo lomítkem (/), nezahrnujte mezeru mezi -r a hodnotou row_term.

-t field_term

Určuje ukončovací znak pole. Výchozí hodnota je \t (znak tabulátoru). Tento parametr použijte k přepsání výchozího ukončovače pole. Další informace naleznete v tématu Zadání ukončovačů polí a řádků (SQL Server).

Pokud zadáte ukončovací znak pole v šestnáctkovém zápisu v příkazu bcp, hodnota bude zkrácena v 0x00. Pokud například zadáte 0x410041, použije se 0x41.

Pokud field_term začíná spojovníkem (-) nebo lomítkem (/), nezahrnujte mezeru mezi -t a hodnotou field_term.

Zpracování hodnot

-k

Určuje, že prázdné sloupce mají během operace hodnotu null, a ne vložení výchozích hodnot pro sloupce. Další informace naleznete v tématu Zachovat hodnoty null nebo výchozí hodnoty při hromadném importu (SQL Server).

-E

Určuje, že operace používá hodnoty identity v importovaném datovém souboru pro sloupec identity. Pokud nezadáte -E, SQL Server ignoruje hodnoty identity pro tento sloupec v importovaném datovém souboru a automaticky přiřadí jedinečné hodnoty na základě počátečních a přírůstkových hodnot zadaných během vytváření tabulky. Další informace naleznete v tématu DBCC CHECKIDENT.

Pokud datový soubor neobsahuje hodnoty sloupce identity v tabulce nebo zobrazení, použijte formátový soubor k určení, že sloupec identity v tabulce nebo zobrazení by se při importu dat měl přeskočit. SQL Server automaticky přiřadí jedinečné hodnoty pro sloupec.

Možnost -E má zvláštní požadavek na oprávnění. Další informace najdete v části "Poznámky" dále v tomto článku.

Vstupně-výstupní operace a protokolování souborů

-i input_file

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Určuje název souboru odpovědi. Soubor obsahuje odpovědi na otázky příkazového řádku pro každé datové pole při provádění operace hromadného kopírování pomocí interaktivního režimu (-n, -c, -wnebo -N není zadáno).

Pokud input_file začíná spojovníkem (-) nebo lomítkem (/), nezahrnujte mezeru mezi -i a hodnotou input_file.

-o výstupní_soubor

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Určuje název souboru, který přijímá výstup přesměrovaný z příkazového řádku.

Pokud output_file začíná spojovníkem (-) nebo lomítkem (/), nezahrnujte mezeru mezi -o a hodnotou output_file.

-e err_file

Určuje úplnou cestu k souboru chyby použitému k uložení všech řádků, které nástroj bcp nemůže přenést ze souboru do databáze. Chybové zprávy z příkazu bcp jsou zasílány na pracovní stanici uživatele. Pokud tuto možnost nepoužíváte, nevytvořil se chybový soubor.

Pokud err_file začíná spojovníkem (-) nebo lomítkem (/), nezahrnujte mezeru mezi -e a hodnotou err_file.

Kompatibilita a správa verzí

-V { 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 }

Platí jenom pro: Windows. Nepodporuje se v Linuxu a macOS.

Provede operaci hromadného kopírování pomocí datových typů ze starší verze SQL Serveru. Tato možnost nezobrazí výzvu pro každé pole; používá výchozí hodnoty.

  • 80 = SQL Server 2000 (8.x)
  • 90 = SQL Server 2005 (9.x)
  • 100 = SQL Server 2008 (10.0.x) a SQL Server 2008 R2 (10.50.x)
  • 110 = SQL Server 2012 (11.x)
  • 120 = SQL Server 2014 (12.x)
  • 130 = SQL Server 2016 (13.x)
  • 140 = SQL Server 2017 (14.x)
  • 150 = SQL Server 2019 (15.x)
  • 160 = SQL Server 2022 (16.x)
  • 170 = SQL Server 2025 (17.x)

Pokud například chcete vygenerovat data pro typy, které SQL Server 2000 (8.x) nepodporuje, ale byly zavedeny v novějších verzích, použijte tuto -V80 možnost.

Další informace naleznete v tématu Import nativních a znakových formátů dat ze starších verzí SQL Serveru.

Různé možnosti

-R

Určuje, že nástroj bcp hromadně kopíruje data měny, data a času do SQL Serveru pomocí místního formátu definovaného pro nastavení národního prostředí klientského počítače. Ve výchozím nastavení bcp ignoruje místní nastavení.

-v

Uvádí číslo verze nástroje bcp a autorská práva.

Remarks

  • Nástroj bcp podporuje nativní datové soubory, které jsou kompatibilní se všemi podporovanými verzemi SQL Serveru.

  • Nástroj bcp zobrazí pouze prvních 512 bajtů chybové zprávy.

Povolení

Operace bcp out vyžaduje oprávnění SELECT ke zdrojové tabulce.

Operace bcp in minimálně vyžaduje oprávnění SELECT a INSERT k cílové tabulce. Kromě toho se vyžaduje ALTER TABLE oprávnění, pokud platí některá z následujících podmínek:

  • Existují omezení a CHECK_CONSTRAINTS tip není specifikován.

    Zakázání omezení je výchozí chování. Pokud chcete explicitně povolit omezení, použijte možnost -h s nápovědou CHECK_CONSTRAINTS.

  • Spouštěče existují a není zadána FIRE_TRIGGERS značka.

    Ve výchozím nastavení se triggery neaktivují. K explicitní aktivaci triggerů použijte možnost -h s nápovědou FIRE_TRIGGERS.

  • K importu hodnot identity z datového souboru použijete možnost -E.

Získejte pomoc

Přispějte k dokumentaci SQL

Věděli jste, že obsah SQL můžete upravovat sami? Pokud to uděláte, nejen že vám pomůžete vylepšit naši dokumentaci, ale také jste získali kredit jako přispěvatel na stránku.

Další informace naleznete v Upravit dokumentaci Microsoft Learn.