Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Ez a cikk azt ismerteti, hogyan hozhat létre formátumfájlt egy adott táblához a bcp segédprogram használatával. A formátumfájl a megadott adattípuson (-n, -c, -wvagy -N) és a tábla- vagy nézethatárolókon alapul.
Ha tömegesen importál egy SQL Server-táblába, vagy tömegesen exportál adatokat egy táblából, a formátumfájlokat rugalmas rendszerként használhatja adatfájlok írására. A formátumfájlok használatához kevés vagy semmilyen szerkesztésre van szükség ahhoz, hogy megfeleljenek más adatformátumoknak, vagy más szoftverprogramok adatfájljait olvashassák.
Korlátozások
A formátumfájl olvasásához használt segédeszköz (bcp.exe) verziója bcp ugyanaz, vagy később, mint a formátumfájl létrehozásához használt verzió. Például az SQL Server 2025 (17.x) bcp képes olvasni egy 16.0-os formátumú fájlt, amelyet az SQL Server 2022 (16.x) bcpgenerál, de az SQL Server 2022 (16.x) bcp nem képes olvasni egy 17.0-s formátumú fájlt, amelyet az SQL Server 2025 (17.x) bcpgenerál.
Jegyzet
Ez a szintaxis, beleértve a tömeges beszúrást, nem támogatott az Azure Synapse Analyticsben. Az Azure Synapse Analyticsben és más felhőalapú adatbázisplatform-integrációkban az adatáthelyezést az Azure Data Factory COPY utasításánakvagy T-SQL-utasítások, például a COPY INTO és a PolyBasehasználatával végezheti el.
Formátumfájlok létrehozása
Az SQL Server kétféle formátumfájlt támogat: nem XML formátumot és XML formátumot. A nem XML formátum az SQL Server korábbi verziói által támogatott eredeti formátum.
Az XML- és a nem XML formátumú fájlok általában felcserélhetők. Javasoljuk azonban, hogy xml-szintaxist használjon a fájlok formázásához, mivel ezek számos előnyt biztosítanak a nem XML formátumú fájlokkal szemben.
A cikkben szereplő kódminták az AdventureWorks2025 or AdventureWorksDW2025 minta adatbázist használják, amelyet letölthetsz az Azure Data SQL Samples Repository GitHub repository-jából. Az Adventure Works Cycles egy kitalált gyártó vállalat, amely az adatbázis-fogalmakat és forgatókönyveket mutatja be.
Formátumfájl létrehozása
Ha a bcp használatával formátumfájlt szeretne létrehozni, adja meg a(z) format argumentumot, és az adatfájl elérési útja helyett a(z) nul elemet használja. Az format opció mindig megköveteli az -f opciót.
XML formátumú fájl létrehozásához meg kell határoznod az -x opciót, például bcp <table_or_view> format nul -f <format_file_name> -x.
Az XML formátumú fájl megkülönböztetéséhez például a fájlnév kiterjesztését használjuk.xml. MyTable.xml
Az XML formátumfájlok szerkezetéről és mezőiről információért lásd: XML formátumfájlok.
Példák
Ez a rész példákat tartalmaz, amelyek bemutatják, hogyan lehet formátumfájlt létrehozni bcp . A HumanResources.Department táblázat négy oszlopot tartalmaz: DepartmentID, Name, GroupNameés ModifiedDate.
Egy. Készíts formátumfájlt karakteradatokhoz
A következő példa karakteradat-formátumokat használva hoz létre egy formátumfájlt a HumanResources.Department táblához.
Hozz létre egy XML formátumfájlt .Department-c.xml A formátumfájl nem alapértelmezett mezőelválasztót használ (,). A következő szakasz a generált formátumfájl tartalmát mutatja be.
A bcp parancs a következő feltételeket tartalmazza.
| Selejtezők | Leírás |
|---|---|
format nul -x -f <format_file> |
Megadja az XML formátumfájlt. |
-c |
Karakteradatokat ad meg. |
-t, |
Vesszőt (,) ad meg mezőelválasztóként.Megjegyzés: Ha az adatfájl az alapértelmezett terminátort ( \t) használja, a -t kapcsoló szükségtelen. |
-T |
Megadja, hogy bcp az SQL Server-hez megbízható kapcsolattal csatlakozik integrált biztonsággal. Ha nem adja meg a(z) -T értéket, a sikeres bejelentkezéshez meg kell adnia a(z) -U és -P értékét. |
A Windows parancssorában adja meg a következő bcp parancsot:
bcp AdventureWorks2025.HumanResources.Department format nul -c -x -f Department-c.xml -t, -T
A létrehozott formátumfájl (Department-c.xml) a következő XML-elemeket tartalmazza:
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
</ROW>
</BCPFORMAT>
Ennek a formátumfájlnak a szintaxisáról információért lásd: XML formátumfájlok. A karakteradatokról információért lásd: Használj karakterformátumot adatimporthoz vagy exportáláshoz.
B. Létrehozz egy formátumfájlt natív adatokhoz
A következő példa létrehoz egy formátumfájlt a HumanResources.Department táblázathoz natív adattípusok felhasználásával.
Hozz létre egy XML formátumfájlt .Department-n.xml A következő szakasz a generált formátumfájl tartalmát mutatja be.
A bcp parancs a következő feltételeket tartalmazza.
| Selejtezők | Leírás |
|---|---|
format nul -x -f <format_file> |
Megadja az XML formátumfájlt. |
-n |
Natív adattípusokat határoz meg. |
-T |
Megadja, hogy bcp az SQL Server-hez megbízható kapcsolattal csatlakozik integrált biztonsággal. Ha nem adja meg a(z) -T értéket, a sikeres bejelentkezéshez meg kell adnia a(z) -U és -P értékét. |
A Windows parancssorában adja meg a következő bcp parancsot:
bcp AdventureWorks2025.HumanResources.Department format nul -x -f Department-n.xml -n -T
A létrehozott formátumfájl (Department-n.xml) a következő XML-elemeket tartalmazza:
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="NativeFixed" LENGTH="2"/>
<FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="NativeFixed" LENGTH="8"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
</ROW>
</BCPFORMAT>
Ennek a formátumfájlnak a szintaxisáról információért lásd: XML formátumfájlok. A natív adatok használatáról információért lásd: Használd natív formátumot adatimportáláshoz vagy exportáláshoz.
C. Nem XML formátumú fájl létrehozása Unicode natív adatokhoz
Ha nem XML formátumú fájlt szeretne létrehozni a Unicode natív adataihoz a HumanResources.Department táblához, használja a következő parancsot:
bcp AdventureWorks2025.HumanResources.Department format nul -T -N -f Department-n.fmt
A Unicode natív formátumú adatok használatáról további információt a Unicode natív formátum használata adatok importálásához vagy exportálásához című témakörben talál.
D. Nem XML formátumú fájl létrehozása Unicode-karakteradatokhoz
Ha egy nem XML formátumú fájlt szeretne létrehozni a Unicode karakteradatokhoz, az alapértelmezett elválasztókat használó HumanResources.Department táblához, használja a következő parancsot:
bcp AdventureWorks2025.HumanResources.Department format nul -T -w -f Department-w.fmt
További információért a Unicode karakteradatok használatáról lásd: Use Unicode karakterformátum adatimporthoz vagy exporthoz.
E. Formátumfájl használata a kódlap opcióval
Amikor a(z) bcp format használatával formátumfájlt hoz létre, a rendszer a rendezési sorrendre és a kódlapra vonatkozó információkat ír a formátumfájlba.
Az alábbi példa formátumfájl, egy öt oszlopos táblázathoz, tartalmazza a sorrendet.
13.0
5
1 SQLCHAR 0 0 "\t" 1 c_0 Cyrillic_General_CS_AS
2 SQLCHAR 0 0 "\t" 2 c_1 Cyrillic_General_CS_AS
3 SQLCHAR 0 3000 "\t" 3 c_2 Cyrillic_General_CS_AS
4 SQLCHAR 0 5 "\t" 4 c_3 ""
5 SQLCHAR 0 41 "!!!\r\r\n" 5 c_4 ""
Ha a bcp in -c -C65001 -f format_file ... használatával, vagy a BULK INSERT használatával, vagy a OPENROWSET és a FORMATFILE='format_file' CODEPAGE=65001 ... használatával próbál adatokat importálni az SQL Serverbe, akkor a formátumfájlban szereplő rendezési vagy kódlap-információk elsőbbséget élveznek a 65001-es beállítással szemben.
Ezért, ha formátumfájlt generálsz, manuálisan kell törölned az összeállítási információkat a generált formátumfájlból, mielőtt elkezdenéd visszaimportálni az adatokat az SQL Server-be.
A következő példa a formátumfájlt mutatja az összeállítási információk nélkül.
13.0
5
1 SQLCHAR 0 0 "\t" 1 c_0 ""
2 SQLCHAR 0 0 "\t" 2 c_1 ""
3 SQLCHAR 0 3000 "\t" 3 c_2 ""
4 SQLCHAR 0 5 "\t" 4 c_3 ""
5 SQLCHAR 0 41 "!!!\r\r\n" 5 c_4 ""
Adatmezők leképezése táblázatoszlopok számára
Egy általa létrehozott bcp formátumfájl sorrendben írja le az összes táblaoszlopot. Egy formátumfájlt módosíthatsz, hogy átrendezd vagy kihagyd a táblázatoszlopokat. A formátumfájlokat testreszabhatja olyan adatfájlra, amelynek mezői nem képezhetők le közvetlenül a táblaoszlopok közé. További információkért lásd a következő cikkeket:
- Formátumfájl használata táblaoszlop kihagyásához
- Formátumfájl használata adatmező kihagyásához
- Használjon formátumfájlt a táblázatoszlopok adatfájl-mezőkkel való leképezésére