Megosztás a következőn keresztül:


bcp segédprogram

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database a Microsoft Fabric

A tömeges másolási program segédprogram (bcp) tömegesen másolja az adatokat a Microsoft SQL Server egy példánya és egy felhasználó által megadott formátumú adatfájl között.

A bcp Linux rendszeren való használatához lásd: Az SQL Server sqlcmd és bcp parancssori eszközeinek telepítése Linux. A bcp Azure Synapse Analytics szolgáltatással való használatával kapcsolatos részletes információkért lásd: Adatok betöltése a bcp.

A bcp segédprogrammal nagy számú új sort importálhat SQL Server-táblákba, vagy adatfájlba exportálhat táblákból adatokat. A queryout lehetőség használata kivételével a segédprogram nem igényel ismereteket a Transact-SQL-ről. Ha adatokat szeretne importálni egy táblába, az adott táblához létrehozott formátumfájlt kell használnia, vagy ismernie kell a tábla szerkezetét és az oszlopokra érvényes adattípusokat.

Jegyzet

Ha bcp használatával készít biztonsági másolatot az adatokról, hozzon létre egy formátumfájlt az adatformátum rögzítéséhez. bcp adatfájlok nem tartalmaznak séma- vagy formátuminformációkat, ezért ha egy tábla vagy nézet el van dobva, és nincs formátumfájlja, előfordulhat, hogy nem tudja importálni az adatokat.

A bcp szintaxisához használt szintaxisi konvenciókért lásd Transact-SQL szintaxiskonvenciákat.

A Linuxon és macOS-en futó bcp a bcp linuxos és macOS-alapúszempontjai című cikkben talál.

A bcp segédprogram legújabb verziójának letöltése

A parancssori eszközök általános rendelkezésre állási (GA) jellegűek, azonban az SQL Server 2019 (15.x) és újabb verzióihoz készült telepítőcsomaggal vannak elérhetővé.

Verzióinformációk

  • Kiadási szám: 15.0.4298.1
  • Buildszám: 15.0.4298.1
  • Kiadás dátuma: 2023. április 7.

bcp támogatja a Microsoft Entra-hitelesítést, beleértve az Azure SQL Database, a Microsoft Fabric SQL Database és az Azure Synapse Analytics többtényezős hitelesítésének (MFA) támogatását.

Jegyzet

Microsoft Entra ID korábban Azure Active Directory (Azure AD) néven ismert.

Rendszerkövetelmények

  • Windows 8, Windows 8.1, Windows 10, Windows 11
  • Windows Server 2016, Windows Server 2019, Windows Server 2022

Ehhez az összetevőhöz az SQL Serverlegújabb Microsoft ODBC Driver 17 szükséges.

A bcp verziójának ellenőrzéséhez hajtsa végre bcp -v parancsot, és győződjön meg arról, hogy a 15.0.4298.1 vagy újabb verzió használatban van.

Szintaxis

Console
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)]
    [-w]
    [-x]
    [-Y[s|m|o]]

Szempontok és korlátozások

  • A bcp segédprogram korlátozása, hogy a hibaüzenet csak 512 bájt karaktert jelenít meg. Csak a hibaüzenet első 512 bájtja jelenik meg.

Megfontolandó szempontok a bcp-hez Linuxon és macOS-en

  • A mezőelválasztó egy tabulátor (\t).

  • A sor terminátora egy új vonal (\n).

  • A karakter mód az bcp formátumfájlok és a kiterjesztett karaktereket nem tartalmazó adatfájlok előnyben részesített formátuma.

  • Egy parancssori argumentumban található fordított perjelet (\) idézőjelbe kell tenni, vagy escape-elni kell. Ha például egy új sort egyéni sor-terminátorként szeretne megadni, az alábbi mechanizmusok egyikét kell használnia:

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

Parancssori beállítások

Az alábbi táblázat felsorolja a bcpelérhető parancssori beállításokat, valamint az általuk támogatott operációs rendszereket.

Parancssori lehetőség Windows rendszeren támogatott Linux és macOS rendszeren támogatott
[database_name.]séma. {table_name | view_name | "lekérdezés"} Igen Igen
[{data_file | data_file | lekérdezésidata_file | formátum nul}]() Igen Igen
-a csomag_méret Igen Igen
-b batch_size Igen Igen
-c Igen Igen
-C { ACP | OEM | NYERS | code_page } Igen Nem
-d adatbázis_név Igen Igen
-D Igen Igen
-e err_file Igen Igen
-E Igen Igen
-f format_file Igen Igen
-F first_row Igen Igen
-G Microsoft Entra hitelesítés Igen Igen
-h"jel [,...n]" Igen Nem
-i input_file Igen Nem
-k Igen Igen
-K alkalmazási_szándék Igen Igen
-l bejelentkezési_időtúllépés Igen Igen
-L utolsó_sor Igen Igen
-m max_errors Igen Igen
-n Igen Igen
-N Igen Nem
-o kimeneti_fájl Igen Nem
-P jelszó Igen Igen
-q Igen Igen
-r row_term Igen Igen
-R Igen Igen
-S [server_name[\instance_name]] Igen Igen
-t mező_kifejezés Igen Igen
-T Igen Igen
-U login_id Igen Igen
-u Nem Igen
-v Igen Igen
-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 ) Igen Nem
-w Igen Igen
-x Igen Nem
-Y[s|m|o] Nem Igen

database_name

Annak az adatbázisnak a neve, amelyben a megadott tábla vagy nézet található. Ha nincs megadva, ez a felhasználó alapértelmezett adatbázisa.

Az adatbázis nevét explicit módon is megadhatja -d.

séma

A tábla vagy nézet tulajdonosának neve. séma nem kötelező, ha a műveletet végrehajtó felhasználóé a megadott tábla vagy nézet. Ha séma nincs megadva, és a műveletet végrehajtó felhasználó nem rendelkezik a megadott táblával vagy nézettel, az SQL Server hibaüzenetet ad vissza, és a művelet megszakad.

table_name

A céltábla neve az SQL Serverbe (in) történő adatimportáláskor, valamint a forrástábla az SQL Serverről való exportáláskor (out).

nézet_név

A célnézet neve az SQL Serverbe (in) való adatmásoláskor, valamint a forrásnézet az SQL Serverről való másoláskor (out). Célnézetként csak azok a nézetek használhatók, amelyekben az összes oszlop ugyanarra a táblára hivatkozik. Az adatok nézetekbe való másolásának korlátozásával kapcsolatos további információkért lásd INSERTcímű témakört.

lekérdezés

Egy Transact-SQL lekérdezés, amely eredményhalmazt ad vissza. Ha a lekérdezés több eredményhalmazt ad vissza, a rendszer csak az első eredményhalmazt másolja az adatfájlba; az ezt követő eredményhalmazok figyelmen kívül lesznek hagyva. Használjon dupla idézőjeleket a lekérdezés körül, és szimpla idézőjeleket a lekérdezésbe ágyazott elemek köré. queryout akkor is meg kell adni, ha egy lekérdezésből tömegesen másol adatokat.

A lekérdezés hivatkozhat egy tárolt eljárásra, ha a tárolt eljárásban hivatkozott összes tábla létezik a bcp utasítás végrehajtása előtt. Ha például a tárolt eljárás létrehoz egy ideiglenes táblát, a bcp utasítás meghiúsul, mert a temp tábla csak futásidőben érhető el, és nem az utasítás végrehajtási idején. Ebben az esetben érdemes lehet beszúrni a tárolt eljárás eredményeit egy táblába, majd bcp használatával átmásolni az adatokat a táblából egy adatfájlba.

ban

Fájlból másolhat az adatbázistáblába vagy -nézetbe. Meghatározza a tömeges másolás irányát.

ki

Másolatok az adatbázistáblából vagy a nézetből egy fájlba. Meghatározza a tömeges másolás irányát.

Ha egy meglévő fájlt ad meg, a fájl felülíródik. Amikor a bcp segédprogram kinyeri az adatokat, az üres sztringet null értékként, a null sztringet pedig üres sztringként jelöli.

adatfájl

Az adatfájl teljes elérési útja. Ha az adatokat tömegesen importálják az SQL Serverbe, az adatfájl tartalmazza a megadott táblába vagy nézetbe másolandó adatokat. Ha az adatokat tömegesen exportálják az SQL Serverről, az adatfájl tartalmazza a táblából vagy nézetből másolt adatokat. Az elérési út 1–255 karakter hosszúságú lehet. Az adatfájl legfeljebb 2^63 – 1 sort tartalmazhat.

queryout

A lekérdezésből származó másolatokat csak akkor kell megadni, ha egy lekérdezésből tömegesen másol adatokat.

formátum

Létrehoz egy formátumfájlt a megadott beállítás (-n, -c, -wvagy -N) és a tábla vagy nézethatárolók alapján. Az adatok tömeges másolásakor a bcp parancs hivatkozhat egy formátumfájlra, amely menti Önt a formátumadatok interaktív újraküldésétől. A format beállításhoz -f beállítás szükséges; XML-formátumú fájl létrehozásához is szükség van a -x beállításra. További információért lásd: Formátumfájl létrehozása (SQL Server). A nul értéket kell megadnia (format nul).

-a csomag_méret

A kiszolgálónak küldött és a kiszolgálóról küldött hálózati csomagonkénti bájtok számát adja meg. A kiszolgálókonfigurációs beállítások az SQL Server Management Studio (vagy a sp_configure rendszer által tárolt eljárás) használatával állíthatók be. Ezzel a beállítással azonban a kiszolgálókonfigurációs beállítás egyedileg felül bírálható. packet_size 4096 bájttól 65 535 bájtig; az alapértelmezett érték a 4096.

A csomagméret növelése növelheti a tömeges másolási műveletek teljesítményét. Ha nagyobb csomagra van szükség, de nem adható meg, akkor a rendszer az alapértelmezett csomagot használja. A bcp segédprogram által létrehozott teljesítménystatisztikák a használt csomagméretet mutatják.

-b batch_size

Az importált adatok kötegenkénti sorainak számát adja meg. Minden köteg külön tranzakcióként lesz importálva és naplózva, amely a teljes köteget importálja a véglegesítése előtt. Alapértelmezés szerint az adatfájl összes sora egyetlen kötegként lesz importálva. Ha több köteg között szeretné elosztani a sorokat, adjon meg egy olyan batch_size, amely kisebb, mint az adatfájl sorainak száma. Ha egy köteg tranzakciója meghiúsul, a rendszer csak az aktuális kötegből származó beszúrásokat állítja vissza. A véglegesített tranzakciók által már importált kötegeket egy későbbi hiba nem érinti.

Ne használja ezt a lehetőséget a -h "ROWS_PER_BATCH=<bb>" beállítással.

-c

A műveletet karakteres adattípussal hajtja végre. Ez a beállítás nem kéri az egyes mezőket; karaktert használ tárolótípusként, előtagok nélkül, és \t (tabulátor) mezőelválasztóként és \r\n (újsoros karakter) sorleválasztóként. -c nem kompatibilis -w.

További információkért lásd: Karakterformátum használata az adatok importálásához vagy exportálásához (SQL Server).

-C { ACP | OEM | RAW | code_page }

Csak Windowsra érvényes. Linux és macOS rendszeren nem támogatott.

Az adatfájlban lévő adatok kódlapját adja meg. code_page csak akkor releváns, ha az adatok olyan char, varcharvagy text oszlopokat tartalmaznak, amelyek karakterértékei nagyobbak, mint 127, vagy kisebbek, mint 32.

Meg kell adnia egy rendezési nevet egy formátumfájl minden oszlopához, kivéve, ha azt szeretné, hogy a 65001 beállítás elsőbbséget élvezjen a rendezési/kódlap-specifikációval szemben.

Kódlap értéke Leírás
ACP ANSI/Microsoft Windows (ISO 1252).
OEM Az ügyfél által használt alapértelmezett kódlap. Ez az alapértelmezett kódlap, ha nincs megadva -C.
RAW Nem történik átalakítás egyik kódlapról a másikra. Ez a leggyorsabb lehetőség, mert nem történik átalakítás.
<code_page> Adott kódoldalszám; például 850.

A 13-es verzió előtti verziók (SQL Server 2016 (13.x)) nem támogatják a 65001-es kódlapot (UTF-8 kódolás). A 13-tól kezdődő verziók importálhatják az UTF-8 kódolást az SQL Server korábbi verzióiba.

-d database_name

Megadja a csatlakozni kívánt adatbázist. Alapértelmezés szerint bcp csatlakozik a felhasználó alapértelmezett adatbázisához. Ha meg van adva -d <database_name> és egy háromrészes név (database_name.schema.table, amely első paraméterként van átadva a(z) bcp-nek), hiba történik, mert nem adhatja meg kétszer az adatbázis nevét. Ha database_name kötőjellel (-) vagy perjellel (/) kezdődik, ne adjon hozzá szóközt a -d és az adatbázis neve között.

-D

A bcp -S beállításnak átadott érték adatforrásnévként (DSN) lesz értelmezve.

A DSN a következőhöz használható:

  • illesztőbeállítások beágyazása a parancssorok egyszerűsítése érdekében,
  • olyan illesztőprogram-beállítások kényszerítése, amelyek egyébként nem érhetők el a parancssorból, például MultiSubnetFailover,
  • vagy hogy megakadályozzuk a bizalmas hitelesítő adatok parancssori argumentumként való felfedezhetőségét.

További információ: DSN-támogatás az sqlcmd és a bcpAz sqlcmdcsatlakoztatása című témakörben.

-e err_file

Annak a hibafájlnak a teljes elérési útját adja meg, amelyet arra használnak, hogy tárolják azokat a sorokat, amelyeket a bcp segédprogram nem tud áthelyezni a fájlból az adatbázisba. A bcp parancs hibaüzenetei a felhasználó munkaállomására kerülnek. Ha ezt a beállítást nem használja, a rendszer nem hoz létre hibafájlt.

Ha err_file kötőjellel (-) vagy perjellel (/) kezdődik, ne tartalmazzon szóközt a -e és a err_file érték között.

-E

Megadja, hogy az importált adatfájlban lévő identitásértéket vagy értékeket kell használni az identitásoszlophoz. Ha -E nincs megadva, a rendszer figyelmen kívül hagyja az importált adatfájl ezen oszlopának identitásértékeit, és az SQL Server automatikusan egyedi értékeket rendel hozzá a tábla létrehozása során megadott mag- és növekményértékek alapján. További információ: DBCC CHECKIDENT.

Ha az adatfájl nem tartalmazza a tábla vagy nézet identitásoszlopának értékeit, egy formátumfájl használatával adja meg, hogy a tábla vagy nézet identitásoszlopát kihagyja az adatok importálása során. Az SQL Server automatikusan egyedi értékeket rendel az oszlophoz.

A -E beállítás speciális engedélykövetelményekkel rendelkezik. További információért lásd a cikk későbbi részében található "Megjegyzések" részt.

-f formátum_fájl

Egy formátumfájl teljes elérési útját adja meg. Ennek a beállításnak a jelentése attól függ, hogy milyen környezetben használják, az alábbiak szerint:

  • Ha a -f a format beállítással van használva, akkor a megadott táblához vagy nézethez jön létre a megadott format_file. XML formátumú fájl létrehozásához adja meg a -x beállítást is. További információért lásd: Formátumfájl létrehozása (SQL Server).

  • Ha a in vagy out beállítással használja, -f egy meglévő formátumfájlt igényel.

    Jegyzet

    A in vagy out opcióval való formátumfájl használata nem kötelező. Ha nincs megadva -f beállítás, ha nincs megadva -n, -c, -wvagy -N, a parancssor a formátumadatok megadását kéri, és lehetővé teszi a válaszok formátumfájlba mentését (amelynek alapértelmezett fájlneve bcp.fmt).

Ha format_file kötőjellel (-) vagy perjellel (/) kezdődik, ne tartalmazzon szóközt a -f és a format_file érték között.

-F első_sor

Megadja a táblából exportálni vagy adatfájlból importálni kívánt első sor számát. Ehhez a paraméterhez a (>) 0-nál nagyobb, de kisebb értékre van szükség, mint (<) vagy egyenlő (=) a teljes számsorsal. Ennek a paraméternek a hiányában az alapértelmezett a fájl első sora.

first_row lehet pozitív egész szám, amelynek értéke legfeljebb 2^63-1 lehet. -F első_sor 1-ről indul.

-G

A következőkre vonatkozik: Azure SQL Database, a Microsoft Fabric SQL Database és az Azure Synapse Analytics.

Ezt a kapcsolót az ügyfél használja annak megadására, hogy a felhasználó a Microsoft Entra-azonosítóval legyen hitelesítve. A -G kapcsolóhoz 14.0.3008.27-es vagy újabb verzióra van szükség. A verzió meghatározásához hajtsa végre a bcp -vparancsot. További információért lásd: A Microsoft Entra-hitelesítés használata az SQL Database vagy az Azure Synapse Analytics szolgáltatással, illetve -hitelesítés az SQL-adatbázishoz a Fabric-ban.

Fontos

Linux és macOS rendszeren a Microsoft Entra interaktív hitelesítése jelenleg nem támogatott. A Microsoft Entra integrált hitelesítéséhez Sql Serverhez készült Microsoft ODBC Driver 17 17.6.1-es és újabb verziókhoz, valamint egy megfelelően konfigurált Kerberos-környezethez.

Ha ellenőrizni szeretné, hogy a bcp verziója támogatja-e a Microsoft Entra-hitelesítést, írja be a bcp --help, és ellenőrizze, hogy -G jelenik-e meg az elérhető argumentumok listájában.

  • Microsoft Entra felhasználónevet és jelszót

    Ha Microsoft Entra-felhasználónevet és -jelszót szeretne használni, megadhatja a -G lehetőséget, és a felhasználónevet és a jelszót is használhatja a -U és -P lehetőségek megadásával.

    Az alábbi példa a Microsoft Entra felhasználónév és jelszó hitelesítő adataival exportálja az adatokat. A példa exportálja az bcptest táblát az testdb adatbázisból az Azure szerver aadserver.database.windows.net-ről, és az adatokat a c:\last\data1.dat-as fájlban tárolja.

    Windows Command Prompt
    bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    

    Az alábbi példa adatokat importál egy Microsoft Entra-felhasználó hitelesítő adataival. A példa adatokat importál a c:\last\data1.dat fájlból a bcptest adatbázis testdb táblájába az Azure szerveren aadserver.database.windows.net, Microsoft Entra felhasználónév és jelszó használatával.

    Windows Command Prompt
    bcp bcptest in "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    
  • Microsoft Entra integrált

    A Microsoft Entra integrált hitelesítéséhez adja meg a -G lehetőséget felhasználónév vagy jelszó nélkül. Ehhez a konfigurációhoz az aktuális Windows-felhasználói fiók (a bcp parancs alatt futó fiók) a Microsoft Entra-azonosítóval van összevonva:

    Az alábbi példa a Microsoft Entra integrált hitelesítésével exportálja az adatokat. A példa exportálja a(z) bcptest táblát a testdb adatbázisból a aadserver.database.windows.net logikai kiszolgálón, és az adatokat a Microsoft Entra ID-hoz federált Windows-hitelesítő adatokkal a(z) c:\last\data2.datfájlban tárolja.

    Windows Command Prompt
    bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c
    

    Az alábbi példa adatokat importál a Microsoft Entra integrált hitelesítésével. A példa a logikai kiszolgáló c:\last\data2.dat-on található bcptest adatbázis testdb táblájába importál adatokat a aadserver.database.windows.net fájltáblából, a Microsoft Entra ID-vel federált Windows-hitelesítő adatok felhasználásával.

    Windows Command Prompt
    bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c
    
  • Microsoft Entra Managed Service Identity

    Fontos

    bcp szorosan kapcsolódik az illesztőprogramhoz. Mind a bcp, mind a fő verzióinak azonosnak kell lenniük a DSN-t létrehozó illesztőprogram fő verziójával. A verzió meghatározásához hajtsa végre a bcp -vparancsot.

    Az adatok bcp windowsos felügyeltszolgáltatás-identitással való exportálásához DSN-t kell konfigurálni.

    DSN konfigurálása Windows rendszerű gépen:

    1. Nyomja le a Windows billentyűt a billentyűzeten

    2. Írja be a ODBC, és válassza ki az ODBC adatforrás-kezelő megfelelő verzióját

    3. Válassza a Felhasználói DSN vagy a Rendszer DSN fület

    4. Válassza a lehetőséget, majd a hozzáadása opciót, és kövesse az utasításokat.

    5. Amikor hitelesítési típust kér, válassza Azure Managed Service Identity-hitelesítés

    6. Ha felhasználó által hozzárendelt kezelhető identitással rendelkezik, illessze be az Object (principal) ID identitást a hitelesítési fül alján található bejelentkezési azonosító mezőbe.

    7. A DSN konfigurálásához kövesse az utasításokat.

    A képernyőképeket is tartalmazó teljes útmutatót a DSN-ek létrehozása és szerkesztése a felhasználói felületencímű témakörben találja.

    Miután a DSN konfigurálva van, a bcp meghívható a -D jelzővel, amely azt jelzi, hogy a -S-nak átadott érték egy DSN.

    Windows Command Prompt
    bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
    

  • Microsoft Entra ID hozzáférési jogkivonat

    Csak a következőkre vonatkozik: Linuxra és macOS-ra. A Windows nem támogatott.

    A bcp 17.8-as és újabb verzióinak felhasználói Linuxon és macOS-en is hitelesítést végezhetnek tokennel. Az alábbi példák PowerShellt használnak Linux a hozzáférési jogkivonat lekéréséhez.

    Ez a példa lekéri a hozzáférési jogkivonatot, és egy fájlba helyezi, hogy adatokat exportáljon egy rendszer által hozzárendelt felügyelt identitás használatával.

    Bash
    Connect-AzAccount -Identity
    $access_token | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
    bcp bcptest out data2.dat -S aadserver.database.windows.net -d testdb -G -P /tmp/tokenFile -c
    

    Ez a példa átad egy Client ID a -AccountIdConnect-AzAccount paraméterének, hogy lekérjen egy hozzáférési jogkivonatot, és helyezze azt egy jogkivonatfájlba. Ezután a jogkivonatot az adatok exportálására használják a megadott Felhasználó által hozzárendelt Felügyelt Identitás segítségével.

    Bash
    Connect-AzAccount -Identity -AccountId 'client_id_of_user_assigned_managed_identity'
    $access_token | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
    bcp bcptest out data2.dat -S aadserver.database.windows.net -d testdb -G -P /tmp/tokenFile -c
    
  • Microsoft Entra interaktív

    Csak Windowsra vonatkozik. A Linux és a macOS nem támogatott.

    A Microsoft Entra interaktív hitelesítése, amely minden Azure SQL- és SQL Server 2022-hez (16.x) és újabb verzióhoz elérhető, lehetővé teszi egy interaktív párbeszédpanel használatát a hitelesítéshez, amely a többtényezős hitelesítést is támogatja.

    A Microsoft Entra interaktív hitelesítéséhez a bcp15.0.1000.34-es vagy újabb verziója, és a ODBC 17.2-es vagy újabb verziója szükséges.

    Az interaktív hitelesítés engedélyezéséhez adja meg a -G lehetőséget csak felhasználónévvel (-U) és jelszó nélkül.

    Az alábbi példa a Microsoft Entra interaktív hitelesítésével exportálja az adatokat, beleértve egy Microsoft Entra-fiók felhasználónevének megadását.

    Az interaktív módhoz manuálisan kell megadni a jelszót, vagy ha a többtényezős hitelesítés engedélyezve van, végezze el a konfigurált MFA-hitelesítési módszert.

    Windows Command Prompt
    bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com
    

    Ha összevont tartományból származó Windows-fiókot használó Microsoft Entra-felhasználót használ, a parancssorban megadott felhasználónévnek tartalmaznia kell a tartományát (például joe@contoso.com):

    Windows Command Prompt
    bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U joe@contoso.com
    

    Ha a vendégfelhasználók egy adott Microsoft Entra-bérlőben találhatók, és egy olyan csoport részét képezik, amely olyan Azure SQL Database-ben található, amely adatbázis-engedélyekkel rendelkezik a bcp parancs végrehajtásához, a vendégfelhasználói aliast használja (például keith0@adventure-works.com).

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

Csak Windowsra vonatkozik. Linux és macOS rendszeren nem támogatott.

Megadja a nagy mennyiségű adat táblába vagy nézetbe történő importálása során használandó hintet vagy tippeket.

  • ORDER (oszlop [ASC | DESC] [, ...n])

    Az adatfájlban lévő adatok rendezési sorrendje. A tömeges importálás teljesítménye javul, ha az importált adatok rendezése a tábla fürtözött indexe szerint történik, ha van ilyen. Ha az adatfájl más sorrendben van rendezve, vagyis a fürtözött indexkulcs sorrendjén kívül, vagy ha nincs fürtözött index a táblában, a ORDER záradék figyelmen kívül lesz hagyva. A megadott oszlopneveknek érvényes oszlopneveknek kell lenniük a céltáblában. Alapértelmezés szerint bcp feltételezi, hogy az adatfájl rendezetlen. Az optimalizált tömeges importáláshoz az SQL Server azt is ellenőrzi, hogy az importált adatok rendezése megtörtént-e.

  • ROWS_PER_BATCH = bb

    Adatsorok száma kötegenként (bb). A -b nincs megadva, így a teljes adatfájl egyetlen tranzakcióként lesz elküldve a kiszolgálónak. A kiszolgáló a bbértékének megfelelően optimalizálja a tömeges adatforgalmat. Alapértelmezés szerint a ROWS_PER_BATCH ismeretlen.

  • KILOBYTES_PER_BATCH = kilobájt tételenként

    Kötegenkénti kilobájtadatok hozzávetőleges száma (cc). Alapértelmezés szerint a KILOBYTES_PER_BATCH ismeretlen.

  • TABLOCK

    Meghatározza, hogy a táblaszintű zárolás tömeges adatbetöltési művelet során kerül sor; ellenkező esetben sorszintű zárolást alkalmaz. Ez a tipp jelentősen javítja a teljesítményt, mivel a tömeges másolási művelet során egy zárolást fenntartva csökkenti a tábla zárolási konfliktusát. A táblák egyszerre több ügyfélből is betölthetők, ha a tábla nem tartalmaz indexeket, és TABLOCK van megadva. Alapértelmezés szerint a zárolási viselkedést a table lock on bulkloadtáblabeállítás határozza meg. További információ: sp_tableoption.

    Jegyzet

    Ha a céltábla fürtözött oszlopcentrikus index, TABLOCK tipp nem szükséges több egyidejű ügyfél általi betöltéshez, mert minden egyidejű szálhoz külön sorcsoport van rendelve az indexen belül, és betölti az adatokat. További tájékoztatásért lásd: Oszlopcentrikus indexek: Áttekintés.

  • CHECK_CONSTRAINTS

    Megadja, hogy a céltábla vagy nézet összes korlátozását ellenőrizni kell a tömeges importálási művelet során. A CHECK_CONSTRAINTS jelzés nélkül a rendszer a CHECKés FOREIGN KEY korlátozásokat figyelmen kívül hagyja, és a művelet után a táblázat kényszere nem megbízhatónak lesz jelölve.

    Jegyzet

    UNIQUE, PRIMARY KEYés NOT NULL korlátozások mindig kikényszeríthetők.

    Egy bizonyos ponton ellenőriznie kell a teljes táblára vonatkozó korlátozásokat. Ha a tábla nem volt üres a tömeges importálási művelet előtt, a kényszer újraértékelésének költsége meghaladhatja CHECK kényszerek növekményes adatokra történő alkalmazásának költségét. Ezért azt javasoljuk, hogy általában engedélyezze a kényszerellenőrzést egy növekményes tömeges importálás során.

    Ha a bemeneti adatok olyan sorokat tartalmaznak, amelyek sértik a korlátozásokat, előfordulhat, hogy le szeretné tiltani a korlátozásokat (az alapértelmezett viselkedést). Ha CHECK korlátozások le vannak tiltva, importálhatja az adatokat, majd Transact-SQL utasításokkal eltávolíthatja az érvénytelen adatokat.

    bcp mostantól kikényszeríti az adatérvényesítést és az adatellenőrzéseket, amelyek miatt a szkriptek meghiúsulhatnak, ha érvénytelen adatokon hajtják végre őket egy adatfájlban.

    Jegyzet

    A -mmax_errors kapcsoló nem vonatkozik a kényszerellenőrzésre.

  • TŰZ_INDÍTÓK

    Ha az argumentumban a opciót adja meg, a céltáblán definiált beszúrási eseményindítók a tömeges adatmásolási művelet során futnak. Ha a FIRE_TRIGGERS nincs megadva, nem futnak a beszúrási triggerek. FIRE_TRIGGERS figyelmen kívül hagyja a out, queryoutés format argumentumokat.

-i input_file

Csak Windowsra vonatkozik. Linux és macOS rendszeren nem támogatott.

Megadja a válaszfájl nevét, amely tartalmazza az egyes adatmezők parancssori kérdéseire adott válaszokat, amikor interaktív módban végez tömeges másolást (-n, -c, -wvagy -N nincs megadva).

Ha input_file kötőjellel (-) vagy perjellel (/) kezdődik, ne tartalmazzon szóközt a -i és a input_file érték között.

-k

Azt adja meg, hogy az üres oszlopoknak null értéket kell megőrizniük a művelet során, és nem kell alapértelmezett értékeket beszúrni az oszlopokhoz. További információ: Null értékek vagy alapértelmezett értékek megőrzése tömeges importáláskor (SQL Server).

-K alkalmazási_szándék

Deklarálja az alkalmazás számítási feladatainak típusát a kiszolgálóhoz való csatlakozáskor. Az egyetlen lehetséges érték a ReadOnly. Ha nincs megadva -K, a bcp segédprogram nem támogatja az Always On rendelkezésre állási csoportban lévő másodlagos replikával való kapcsolatot. További információ: Írásvédett számítási feladatok kiszervezése egy Always On rendelkezésre állási csoport másodlagos replikájára.

-l bejelentkezési_időkorlát

A bejelentkezési időkorlátot adja meg. A -l beállítás azt határozza meg, hogy hány másodpercig kell az SQL Serverre bejelentkezni, amikor megpróbál csatlakozni egy kiszolgálóhoz. Az alapértelmezett bejelentkezési időtúllépés 15 másodperc. A bejelentkezési időtúllépésnek 0 és 65534 közötti számnak kell lennie. Ha a megadott érték nem numerikus, vagy nem esik ebbe a tartományba, bcp hibaüzenetet generál. A 0 érték végtelen időtúllépést határoz meg.

-L utolsó_sor

A táblából exportálandó vagy adatfájlból importálandó utolsó sor számát adja meg. Ehhez a paraméterhez a (>) 0-nál nagyobb, de kisebb értékre van szükség, mint (<) vagy egyenlő (=) az utolsó sor számával. Ennek a paraméternek a hiányában az alapértelmezett érték a fájl utolsó sora.

last_row lehet pozitív egész szám, amelynek értéke legfeljebb 2^63-1 lehet.

-m max_errors

A szintaxishibák maximális számát határozza meg, amelyek előfordulhatnak, mielőtt a bcp művelet megszakításra kerül. A szintaxishiba adatkonvertálási hibát jelent a cél adattípusra. A max_errors összeg kizárja azokat a hibákat, amelyek csak a kiszolgálón észlelhetők, például a kényszer megsértései.

A bcp segédprogram nem másolható sorokat figyelmen kívül hagyja, és egyetlen hibának számít. Ha ez a beállítás nem szerepel, az alapértelmezett érték 10.

Jegyzet

A -m lehetőség nem vonatkozik a pénz vagy bigint adattípusok konvertálására.

-n

A tömeges másolási műveletet az adatok natív (adatbázis-) adattípusával hajtja végre. Ez a beállítás nem kéri az egyes mezőket; a natív értékeket használja.

További információ: Adatok importálása vagy exportálása natív formátumban (SQL Server).

-N

Csak a Windowsra vonatkozik. Linux és macOS rendszeren nem támogatott.

A tömeges másolási műveletet a nemcharacter-adatok natív (adatbázis-) adattípusai, a karakteradatok Unicode-karakterei használatával hajtja végre. Ez a lehetőség a -w lehetőség nagyobb teljesítményű alternatívát kínál, és az SQL Server egyik példányáról egy másikba adatfájl használatával történő átvitelére szolgál. Nem kéri az egyes mezőket. Ezt a lehetőséget akkor használja, ha kiterjesztett ANSI-karaktereket tartalmazó adatokat továbbít, és ki szeretné használni a natív mód teljesítményét.

További információ: Unicode natív formátum használata adatok importálásához vagy exportálásához (SQL Server).

Ha bcp és -Nhasználatával exportálja, majd importálja az adatokat ugyanarra a táblázatsémára, csonkítási figyelmeztetés jelenhet meg, ha van egy rögzített hosszúságú, nem Unicode karakteroszlop (például char(10)).

A figyelmeztetés figyelmen kívül hagyható. A figyelmeztetés megoldásának egyik módja, ha -nhelyett -N használ.

-o output_file

Csak Windowsra vonatkozik: Linux és macOS rendszeren nem támogatott.

Megadja annak a fájlnak a nevét, amely a parancssorból átirányított kimenetet fogad.

Ha output_file kötőjellel (-) vagy perjellel (/) kezdődik, ne tartalmazzon szóközt a -o és a output_file érték között.

-P jelszó

Megadja a bejelentkezési azonosító jelszavát. Ha ezt a beállítást nem használja, a bcp parancs kéri a jelszót. Ha ezt a beállítást a parancssor végén jelszó nélkül használja, bcp az alapértelmezett jelszót (NULL) használja.

Fontos

Ne használjon üres jelszót. Használjon erős jelszót.

A jelszó maszkolásához ne adja meg a -P beállítást a -U beállítással együtt. Ehelyett, miután megadta bcp, valamint a -U lehetőséget és más kapcsolókat (ne adja meg a -P), nyomja le az Enter billentyűt, és a parancs jelszót fog kérni. Ez a módszer biztosítja, hogy a jelszó maszkolt legyen, amikor be van írva.

Ha jelszó kötőjellel (-) vagy perjellel (/) kezdődik, ne adjon hozzá szóközt a -P és a jelszó értéke között.

-q

Végrehajtja a SET QUOTED_IDENTIFIER ON utasítást a bcp segédprogram és az SQL Server egy példánya közötti kapcsolatban. Ezzel a beállítással megadhat egy szóközt vagy egyetlen idézőjelet tartalmazó adatbázist, tulajdonost, táblázatot vagy nézetnevet. A teljes háromrészes tábla vagy nézet nevét idézőjelek közé ("") helyezze.

Ha szóközt vagy idézőjelet tartalmazó adatbázisnevet szeretne megadni, használja a -q lehetőséget.

-q nem vonatkozik a -dátadott értékekre.

További információt a jelen cikk Megjegyzések szakaszában talál.

-r sor_kifejezés

A sor terminátorát adja meg. Az alapértelmezett érték a \n (újvonalas karakter). Ezzel a paraméter használatával felülbírálhatja az alapértelmezett sor-terminátort. További információ: Mező- és sorválasztók (SQL Server).

Ha egy bcp parancsban hexadecimális jelölésben adja meg a sorvégjelet, akkor az érték levágásra kerül 0x00. Ha például 0x410041ad meg, 0x41 lesz használva.

Ha row_term kötőjellel (-) vagy perjellel (/) kezdődik, ne tartalmazzon szóközt a -r és a row_term érték között.

-R

Megadja, hogy a pénznem- és dátum- és időadatok tömegesen legyenek átmásolva az SQL Serverre az ügyfélszámítógép területi beállításához megadott regionális formátum használatával. Alapértelmezés szerint a regionális beállítások figyelmen kívül lesznek hagyva.

-S [szerver_név[\példány_név]]

Megadja annak az SQL Server-példánynak a nevét, amelyhez csatlakozni szeretne, vagy ha -D használ egy DSN-t.

Ha nincs megadva kiszolgáló, a bcp segédprogram a helyi számítógépen lévő SQL Server alapértelmezett példányához csatlakozik. Ez a beállítás akkor szükséges, ha egy bcp parancsot a hálózat távoli számítógépéről vagy egy helyi névvel ellátott példányról futtat. Ha egy kiszolgálón az SQL Server alapértelmezett példányához szeretne csatlakozni, csak server_nameadjon meg. Az SQL Server egy nevesített példányához való csatlakozáshoz adja meg a server_name**\**instance_name.

-t field_term

A mező terminátorát adja meg. Az alapértelmezett érték a \t (tabulátor karakter). Ezzel a paraméterrel felülbírálhatja az alapértelmezett mező-terminátort. További információ: Mező- és sorválasztók (SQL Server).

Ha a mező terminátorát hexadecimális jelöléssel adja meg egy bcp parancsban, akkor az értéket csonkolják 0x00. Ha például 0x410041ad meg, 0x41 lesz használva.

Ha field_term kötőjellel (-) vagy perjellel (/) kezdődik, ne adjon meg szóközt a -t és a field_term érték között.

-T

Megadja, hogy a bcp segédprogram megbízható kapcsolattal csatlakozik az SQL Serverhez integrált biztonság használatával. A hálózati felhasználó login_idés jelszó biztonsági hitelesítő adataira nincs szükség. Ha nincs megadva -T, meg kell adnia -U és -P a sikeres csatlakozáshoz.

Fontos

Ha a bcp segédprogram megbízható kapcsolattal csatlakozik az SQL Serverhez integrált biztonság használatával, használja a -T beállítást (megbízható kapcsolat) a felhasználónév és jelszó kombináció helyett. Ha a bcp segédprogram csatlakozik az SQL Database-hez vagy az Azure Synapse Analyticshez, a Windows-hitelesítés vagy a Microsoft Entra-hitelesítés nem támogatott. Használja a -U és -P lehetőségeket.

-U login_id

Megadja az SQL Serverhez való csatlakozáshoz használt bejelentkezési azonosítót.

-u

Csak a Linux és macOSbcp 18-es és újabb verzióira vonatkozik. Windows rendszeren nem támogatott.

Megbízhatósági kiszolgálótanúsítvány.

-v

A bcp segédprogram verziószámának és szerzői jogának jelentése.

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

Csak Windows esetén érvényes. Linux és macOS rendszeren nem támogatott.

A tömeges másolási műveletet az SQL Server egy korábbi verziójából származó adattípusok használatával hajtja végre. Ez a beállítás nem kéri az egyes mezőket; az alapértelmezett értékeket használja.

  • 80 = SQL Server 2000 (8.x)
  • 90 = SQL Server 2005 (9.x)
  • 100 = SQL Server 2008 (10.0.x) és 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)

Ha például az SQL Server 2000 (8.x) által nem támogatott, de az SQL Server későbbi verzióiban bevezetett típusokhoz szeretne adatokat létrehozni, használja a -V80 lehetőséget.

További információ: Natív és karakterformátumú adatok importálása az SQL Server korábbi verzióiból.

-w

Unicode-karakterek használatával hajtja végre a tömeges másolási műveletet. Ez a beállítás nem kéri az egyes mezőket; nchar tárolótípust használ, előtagok nélkül, \t (tabulátor karakter) mezőelválasztóként, sorleválasztóként pedig \n (újsoros karakter). -w nem kompatibilis -c.

További információ: Adatok importálása vagy exportálása (SQL Server)Unicode karakterformátum használata.

-x

Csak Windowsra vonatkozik. Linux és macOS rendszeren nem támogatott.

Ez a beállítás a format és -fformat_file beállításokkal használható, és az alapértelmezett nem XML formátumú fájl helyett xml-alapú formátumfájlt hoz létre. A -x nem működik az adatok importálása vagy exportálása során. Hiba keletkezik, ha format és -fformat_filenélkül használják.

-Y[s|m|o]

Csak a Linux és macOSbcp 18-es és újabb verzióira vonatkozik. Windows rendszeren nem támogatott.

Megadja a kapcsolat titkosítási módját. A beállítások szigorúak, kötelezőek és nem kötelezőek. A -Y paraméter nélküli használata kötelező titkosítási módot használ, és egyenértékű a -Ym.

Megjegyzések

  • A bcp 13.0-s ügyfél telepítve van a Microsoft SQL Server 2019 (15.x) eszközök telepítésekor. Ha az SQL Server több verziójához is vannak telepítve eszközök, a PATH környezeti változó értékeinek sorrendjétől függően előfordulhat, hogy a korábbi bcp ügyfelet használja a bcp 13.0-s ügyfél helyett. Ez a környezeti változó határozza meg, hogy a Windows milyen könyvtárakat használ a végrehajtható fájlok kereséséhez. A használt verzió felderítéséhez futtassa a bcp -v parancsot a Windows parancssorában. A PATH környezeti változó parancsútvonalának beállításáról a következő forrásokban található további információ: Környezeti változók, illetve keressen a Környezeti változók kifejezésre a Windows súgójában.

    A bcp segédprogram legújabb verziójának futtatásához el kell távolítania a bcp segédprogram régebbi verzióit.

    A bcp segédprogram összes verziójának telepítésének megállapításához írja be a parancssorba:

    Windows Command Prompt
    where bcp.exe
    
  • A bcp segédprogram a Microsoft SQL Server 2016 Feature Packrészeként külön is letölthető. Válassza ENU\x64\MsSqlCmdLnUtils.msi vagy ENU\x86\MsSqlCmdLnUtils.msilehetőséget.

  • Az XML-formátumú fájlok csak akkor támogatottak, ha az SQL Server-eszközök az SQL Server natív ügyféllel együtt vannak telepítve.

  • További információ a bcp segédprogram megkereséséről és futtatásáról, valamint a parancssori segédprogramok szintaxisi konvencióiról: SQL Parancssori segédprogramok (adatbázismotor).

  • Az adatok tömeges importálási vagy exportálási műveletekre való előkészítéséről további információt Adatok előkészítése tömeges exportálásra vagy importálásracímű témakörben talál.

  • A tömeges importálással végrehajtott sorbeszúrási műveletek tranzakciónaplóban való naplózásának időpontjáról további információt a A tömeges importálásiminimális naplózás előfeltételei című témakörben talál.

  • További speciális karakterek használata

    A <, >, |, &és ^ speciális parancshéj karakternél a megelőzést szolgáló^escape karaktert kell használni, vagy idézőjelek közé kell őket foglalni, ha sztringben használják őket (például, "StringContaining&Symbol"esetén). Ha idézőjelek használatával csatol egy sztringet, amely az egyik speciális karaktert tartalmazza, az idézőjelek a környezeti változó értékének részeként vannak beállítva.

Natív adatfájl támogatása

Az SQL Serverben a bcp segédprogram az SQL Server 2000 (8.x) és újabb verzióival kompatibilis natív adatfájlokat támogatja.

Számított oszlopok és időbélyeg-oszlopok

A számított vagy időbélyeg- oszlopokhoz importált adatfájl értékei figyelmen kívül lesznek hagyva, és az SQL Server automatikusan hozzárendel értékeket. Ha az adatfájl nem tartalmazza a számított vagy időbélyeg oszlop értékeit a táblában, egy formátumfájl használatával adja meg, hogy a tábla számított vagy időbélyeg- oszlopait ki kell hagyni az adatok importálása során; Az SQL Server automatikusan hozzárendeli az oszlop értékeit.

A számított és időbélyeg oszlopok tömegesen másolódnak az SQL Serverről egy adatfájlba a szokásos módon.

Szóközöket vagy idézőjeleket tartalmazó azonosítók megadása

Az SQL Server-azonosítók tartalmazhatnak karaktereket, például beágyazott szóközöket és idézőjeleket. Az ilyen azonosítókat a következőképpen kell kezelni:

  • Ha a parancssorban szóközt vagy idézőjelet tartalmazó azonosítót vagy fájlnevet ad meg, az azonosítót idézőjelek közé ("") kell foglalnia.

    Az alábbi bcp out parancs például létrehoz egy Currency Types.datnevű adatfájlt:

    Windows Command Prompt
    bcp AdventureWorks2022.Sales.Currency out "Currency Types.dat" -T -c
    
  • Ha szóközt vagy idézőjelet tartalmazó adatbázisnevet szeretne megadni, használja a -q lehetőséget.

  • Beágyazott szóközöket vagy idézőjeleket tartalmazó tulajdonos-, táblázat- vagy nézetnevek esetén a következőket teheti:

    • Adja meg a -q beállítást, vagy

    • Helyezze a tulajdonos, a tábla vagy a nézet nevét zárójelek közé ([]) az idézőjelek belsejében.

Adatérvényesítés

bcp mostantól kikényszeríti az adatérvényesítést és az adatellenőrzéseket, amelyek miatt a szkriptek meghiúsulhatnak, ha érvénytelen adatokon hajtják végre őket egy adatfájlban. Például bcp ellenőrzi, hogy:

  • A lebegőpontos vagy valós adattípusok natív ábrázolása érvényes.

  • A Unicode-adatok páros bájthosszúságúak.

Az SQL Server korábbi verzióiban tömegesen importálható érvénytelen adatok űrlapjai most nem tölthetők be; míg a korábbi verziókban a hiba nem történt meg, amíg egy ügyfél meg nem próbálta elérni az érvénytelen adatokat. A hozzáadott érvényesítés minimálisra csökkenti a meglepetéseket az adatok tömeges betöltés utáni lekérdezésekor.

SQLXML-dokumentumok tömeges exportálása vagy importálása

AZ SQLXML-adatok tömeges exportálásához vagy importálásához használja a formátumfájlban az alábbi adattípusok egyikét.

Adattípus Hatás
SQLCHAR vagy SQLVARYCHAR Az adatokat az ügyfélkódlapon vagy a rendezés által sugallt kódlapon küldi el a rendszer. Az effektus ugyanaz, mint a -c kapcsoló megadása formátumfájl megadása nélkül.
SQLNCHAR vagy SQLNVARCHAR Az adatok Unicode formátumban lesznek elküldve. Az effektus ugyanaz, mint a -w kapcsoló megadása formátumfájl megadása nélkül.
SQLBINARY vagy SQLVARYBIN Az adatok konvertálás nélkül lesznek elküldve.

Engedélyek

Egy bcp out művelethez SELECT engedély szükséges a forrástáblában.

Egy bcp in művelethez minimálisan SELECT/INSERT engedély szükséges a céltáblán. Emellett ALTER TABLE engedélyre is szükség van, ha az alábbi feltételek bármelyike teljesül:

  • Korlátozások léteznek, és a CHECK_CONSTRAINTS tipp nincs megadva.

    A korlátozások letiltása az alapértelmezett viselkedés. A korlátozások explicit engedélyezéséhez használja a -h lehetőséget a CHECK_CONSTRAINTS tipptel.

  • Az eseményindítók léteznek, és nincs megadva a FIRE_TRIGGER tipp.

    Alapértelmezés szerint az indítók nem lépnek működésbe. Ha explicit módon szeretné aktiválni az eseményindítókat, használja a -h lehetőséget a FIRE_TRIGGERS tippel.

  • A -E beállítással importálhat identitásértékeket egy adatfájlból.

Jegyzet

A céltáblán ALTER TABLE engedély megkövetelése az SQL Server 2005-ben (9.x) lett bevezetve. Ez a követelmény miatt a bcp szkriptek, amelyek nem kényszerítik ki az eseményindítókat és a kényszerellenőrzéseket, sikertelenek lehetnek, ha a felhasználói fiók nem rendelkezik a céltáblához szükséges ALTER TABLE engedélyekkel.

A karakter mód (-c) és a natív mód (-n) ajánlott eljárásai

Ez a szakasz a karakter módra (-c) és a natív módra (-n) vonatkozó javaslatokat tartalmazza.

  • (Rendszergazda/Felhasználó) Ha lehetséges, használjon natív formátumot (-n) az elválasztó probléma elkerülése érdekében. A natív formátum használatával exportálhatja és importálhatja az SQL Servert. Exportálja az adatokat az SQL Serverről a -c vagy -w beállítással, ha az adatok nem SQL Server-adatbázisba lesznek importálva.

  • (Rendszergazda) Ellenőrizze az adatokat bcp outhasználatakor. Például használja a bcp out, bcp in, majd bcp out kódokat, és ellenőrizze, hogy az adatok megfelelően vannak exportálva, és hogy a terminátorértékeket nem használják-e valamilyen adatérték részeként. Fontolja meg az alapértelmezett terminátorok (-t és -r beállításainak) felülírását véletlenszerű hexadecimális értékekkel, hogy elkerülje a terminátorértékek és az adatértékek közötti ütközéseket.

  • (Felhasználó) Használjon hosszú és egyedi terminátort (bájtok vagy karakterek bármilyen sorozata) a tényleges sztringértékkel való ütközés lehetőségének minimalizálásához. Ezt a -t és -r lehetőségekkel teheti meg.

Példák

Az ebben a szakaszban szereplő példák az SQL Server 2016 (13.x) és újabb verzióihoz, az Azure SQL Database-hez és a felügyelt Azure SQL-példányhoz készült WideWorldImporters mintaadatbázist használják. WideWorldImporters letölthető innen https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0-ről. A mintaadatbázis visszaállításához tekintse meg VISSZAÁLLÍTÁSI utasítások szintaxist.

Példa tesztelési feltételekre

Ha másként nincs megadva, a példák feltételezik, hogy Windows-hitelesítést használ, és megbízható kapcsolattal rendelkezik ahhoz a kiszolgálópéldányhoz, amelyen a bcp parancsot futtatja. Számos példa egy D:\bcp nevű könyvtárat használ.

A következő Transact-SQL szkript létrehozza a WideWorldImporters.Warehouse.StockItemTransactions tábla egy üres példányát, majd hozzáad egy elsődleges kulcskorlátozást:

SQL
USE WideWorldImporters;
GO

SET NOCOUNT ON;

IF NOT EXISTS (SELECT *
               FROM sys.tables
               WHERE name = 'Warehouse.StockItemTransactions_bcp')
    BEGIN
        SELECT *
        INTO WideWorldImporters.Warehouse.StockItemTransactions_bcp
        FROM WideWorldImporters.Warehouse.StockItemTransactions
        WHERE 1 = 2;

        ALTER TABLE Warehouse.StockItemTransactions_bcp
        ADD CONSTRAINT PK_Warehouse_StockItemTransactions_bcp
            PRIMARY KEY NONCLUSTERED (StockItemTransactionID ASC);
    END

Amennyiben szükséges, csonkíthatja a StockItemTransactions_bcp táblát.

SQL
TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;

Egy. A bcp segédprogram verziójának azonosítása

A parancssorban adja meg a következő parancsot:

Windows Command Prompt
bcp -v

B. Táblázatsorok másolása adatfájlba (megbízható kapcsolattal)

Az alábbi példák a out opciót szemléltetik a WideWorldImporters.Warehouse.StockItemTransactions táblán.

  • Alapszintű

    Ez a példa létrehoz egy StockItemTransactions_character.bcp nevű adatfájlt, és karakter formátumban másolja be a táblázat adatait.

    A parancssorban adja meg a következő parancsot:

    Windows Command Prompt
    bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\bcp\StockItemTransactions_character.bcp -c -T
    
  • bővített

    Ez a példa létrehoz egy StockItemTransactions_native.bcp nevű adatfájlt, amelybe a táblaadatokat a natív formátum használatával másolja. A példa a szintaxishibák maximális számát, egy hibafájlt és egy kimeneti fájlt is meghatározza.

    A parancssorban adja meg a következő parancsot:

    Windows Command Prompt
    bcp WideWorldImporters.Warehouse.StockItemTransactions OUT D:\bcp\StockItemTransactions_native.bcp -m 1 -n -e D:\bcp\Error_out.log -o D:\bcp\Output_out.log -S -T
    

Tekintse át Error_out.log és Output_out.log. Error_out.log üresnek kell lennie. Hasonlítsa össze a fájlméreteket StockItemTransactions_character.bcp és StockItemTransactions_native.bcpközött.

C. Táblázatsorok másolása adatfájlba (vegyes módú hitelesítéssel)

Az alábbi példa a out tábla WideWorldImporters.Warehouse.StockItemTransactions beállítását szemlélteti. Ez a példa létrehoz egy StockItemTransactions_character.bcp nevű adatfájlt, és karakter formátumban másolja be a táblázat adatait.

A példa feltételezi, hogy vegyes módú hitelesítést használ, és a bejelentkezési azonosító megadásához a -U kapcsolót kell használnia. Emellett, ha nem csatlakozik a helyi számítógépen található SQL Server alapértelmezett példányához, használja a -S kapcsolót a rendszer nevének és opcionálisan a példány nevének megadásához.

A parancssorban adja meg a következő parancsot: (A rendszer kéri a jelszót.)

Windows Command Prompt
bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\bcp\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>

D. Adatok másolása fájlból táblázatba

Az alábbi példák a korábban létrehozott fájlok használatával szemléltetik a in tábla WideWorldImporters.Warehouse.StockItemTransactions_bcp beállítását.

  • Alapszintű

    Ez a példa a korábban létrehozott StockItemTransactions_character.bcp adatfájlt használja.

    A parancssorban adja meg a következő parancsot:

    Windows Command Prompt
    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\bcp\StockItemTransactions_character.bcp -c -T
    
  • bővített

    Ez a példa a korábban létrehozott StockItemTransactions_native.bcp adatfájlt használja. A példa továbbá: használja a tippet TABLOCK, megadja a köteg méretét, a szintaxishibák maximális számát, egy hibafájlt és egy kimeneti fájlt.

    A parancssorban adja meg a következő parancsot:

    Windows Command Prompt
    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\bcp\StockItemTransactions_native.bcp -b 5000 -h "TABLOCK" -m 1 -n -e D:\bcp\Error_in.log -o D:\bcp\Output_in.log -S -T
    

    Tekintse át Error_in.log és Output_in.log.

E. Adott oszlop másolása adatfájlba

Egy adott oszlop másolásához használhatja a queryout lehetőséget. Az alábbi példa csak a StockItemTransactionID tábla Warehouse.StockItemTransactions oszlopát másolja egy adatfájlba.

A parancssorban adja meg a következő parancsot:

Windows Command Prompt
bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\bcp\StockItemTransactionID_c.bcp -c -T

F. Egy adott sor másolása az adatfájlba

Egy adott sor másolásához használhatja a queryout lehetőséget. Az alábbi példa csak a Amy Trefl nevű személy sorát másolja át a WideWorldImporters.Application.People táblából egy adatfájlba Amy_Trefl_c.bcp.

Jegyzet

A -d kapcsoló az adatbázis azonosítására szolgál.

A parancssorban adja meg a következő parancsot:

Windows Command Prompt
bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\bcp\Amy_Trefl_c.bcp -d WideWorldImporters -c -T

G. Adatok másolása lekérdezésből adatfájlba

Ha az eredményhalmazt egy Transact-SQL utasításból egy adatfájlba szeretné másolni, használja a queryout lehetőséget. Az alábbi példa a teljes névvel rendezett WideWorldImporters.Application.People táblából másolja a neveket a People.txt adatfájlba.

Jegyzet

A -t kapcsolóval vesszővel tagolt fájlt hozhat létre.

A parancssorban adja meg a következő parancsot:

Windows Command Prompt
bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\bcp\People.txt -t, -c -T

H. Formátumfájlok létrehozása

Az alábbi példa három különböző formátumfájlt hoz létre a Warehouse.StockItemTransactions adatbázis WideWorldImporters táblázatához. Tekintse át az egyes létrehozott fájlok tartalmát.

A parancssorban adja meg a következő parancsokat:

Windows Command Prompt
REM non-XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\bcp\StockItemTransactions_c.fmt -c -T

REM non-XML native format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\bcp\StockItemTransactions_n.fmt -n -T

REM XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\bcp\StockItemTransactions_c.xml -x -c -T

Jegyzet

A -x kapcsoló használatához bcp 9.0-s ügyfelet kell használnia. A bcp 9.0-s ügyfél használatáról további információt a Megjegyzések szakaszban talál.

További információ: Nem XML formátumú fájlok (SQL Server) és XML-formátumfájlok (SQL Server).

Én. Formátumfájl használata tömeges importáláshoz a bcp használatával

Ha korábban létrehozott formátumfájlt szeretne használni az ADATOK SQL Server-példányba való importálásához, használja a -f kapcsolót a in beállítással. Az alábbi parancs például tömegesen átmásolja egy adatfájl tartalmát ( StockItemTransactions_character.bcp) a Warehouse.StockItemTransactions_bcp tábla egy másolatába a korábban létrehozott formátumfájl használatával, StockItemTransactions_c.xml.

Jegyzet

A -L kapcsoló csak az első 100 rekord importálására szolgál.

A parancssorban adja meg a következő parancsot:

Windows Command Prompt
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in D:\bcp\StockItemTransactions_character.bcp -L 100 -f D:\bcp\StockItemTransactions_c.xml -T

Jegyzet

A fájlok formázása akkor hasznos, ha az adatfájl mezői eltérnek a táblaoszlopoktól; például számban, sorrendben vagy adattípusokban. További információ: Fájlok formázása adatok importálásához vagy exportálásához (SQL Server).

J. Kódlap megadása

Az alábbi részleges kódpélda bemutatja a bcp importálását a 65001 kódlap megadásával.

Windows Command Prompt
bcp MyTable in "D:\data.csv" -T -c -C 65001 -t , ...

K. Példa kimeneti fájl egyéni mező és sorkifejezők használatával

Ez a példa két mintafájlt mutat be, amelyeket bcp generált egyéni mező- és sorelválasztók használatával.

  1. Hozzon létre egy táblát dbo.T1 a tempdb adatbázisban két oszloptal, ID és Name.

    SQL
    USE tempdb;
    GO
    
    CREATE TABLE dbo.T1 (ID INT, [Name] NVARCHAR (20));
    GO
    
    INSERT INTO dbo.T1 VALUES (1, N'Natalia');
    INSERT INTO dbo.T1 VALUES (2, N'Mark');
    INSERT INTO dbo.T1 VALUES (3, N'Randolph');
    GO
    
  2. Hozzon létre egy kimeneti fájlt a dbo.T1példatáblából egy egyéni mező terminátorával.

    Ebben a példában a kiszolgáló neve MYSERVER, -t , pedig az egyéni mező terminátorát adja meg.

    Windows Command Prompt
    bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t ,
    

    Itt van az eredményhalmaz.

    Output
    1,Natalia
    2,Mark
    3,Randolph
    
  3. Hozzon létre egy kimeneti fájlt a dbo.T1példatáblából egy egyéni mező-terminátor és egy egyéni sorkifejező használatával.

    Ebben a példában a kiszolgáló neve MYSERVER, -t , az egyéni mező terminátorát, -r : pedig az egyéni sor terminátorát adja meg.

    Windows Command Prompt
    bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t , -r :
    

    Itt van az eredményhalmaz.

    Output
    1,Natalia:2,Mark:3,Randolph:
    

    Jegyzet

    A sorvégjelet mindig hozzáadják, még az utolsó rekord esetében is. A mezőhatároló azonban nem adódik hozzá az utolsó mezőhöz.

További példák

Az alábbi cikkek példákat tartalmaznak bcphasználatára:

Segítség kérése

Közreműködés az SQL dokumentációjában

Tudta, hogy saját maga szerkesztheti az SQL-tartalmakat? Ha így tesz, nem csak a dokumentáció fejlesztésében segít, hanem az oldal közreműködőjeként is jóváírást kap.

További információért lásd: Az SQL Server dokumentációjához való hozzájárulás módja