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


Nem XML formátumú fájlok használata (SQL Server)

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

Az SQL Serverben kétféle formátumfájl támogatott a tömeges exportáláshoz és importáláshoz: nem XML formátumú fájlok és XML-formátumú fájlok.

A nem XML formátumú fájlok előnyei

A nem XML formátumú fájlokat automatikusan létrehozhatja a bcp parancs formátumbeállításának megadásával.

Ha egy meglévő formátumfájlt ad meg egy bcp-parancsban, a parancs a formátumfájlban rögzített értékeket használja, és nem kéri a fájltároló típusát, az előtag hosszát, a mező hosszát vagy a mező terminátorát.

Létrehozhat formátumfájlt egy adott adattípushoz, például karakteradatokhoz vagy natív adatokhoz.

Létrehozhat egy nem XML formátumú fájlt, amely interaktívan megadott attribútumokat tartalmaz az egyes adatmezőkhöz. További információ: Kompatibilitási adatformátumok megadása a bcp (SQL Server) használatakor.

Az XML-formátumú fájlok számos előnyt kínálnak a nem XML formátumú fájlokkal szemben. További információ: XML-formátumú fájlok (SQL Server).

Megjegyzés:

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.

Nem XML formátumú fájlok felépítése

A nem XML formátumú fájlok egy adott struktúrával rendelkező szövegfájlok. A nem XML formátumú fájl minden táblaoszlop fájltárolási típusával, előtaghosszával, mezőhosszával és mezőkifejezésével kapcsolatos információkat tartalmaz.

Az alábbi ábra egy nem XML formátumú mintafájl formátumfájl-mezőit szemlélteti.

Egy nem xml formátumú fájl mezőit azonosítja.

A verzió és az oszlopok száma mezők csak egyszer fordulnak elő. Jelentésüket az alábbi táblázat ismerteti.

Formátumfájl mező Leírás
verzió A bcp segédprogram verziószáma:

9.0 = SQL Server 2005 (9.x)

10.0 = SQL Server 2008 (10.0.x)

11.0 = SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)

13.0 = SQL Server 2016 (13.x)

14.0 = SQL Server 2017 (14.x)

15.0 = SQL Server 2019 (15.x)

16.0 = SQL Server 2022 (16.x)

A verziószámot csak a bcp ismeri fel, a Transact-SQL nem.

Megjegyzés: A formátumfájl olvasásához használt bcp segédprogram verziójának meg kell egyeznie a formátumfájl létrehozásához használt verzióval vagy egy későbbi verzióval. Az SQL Server 2012 (11.x) bcp például képes olvasni egy 10.0-s formátumú fájlt, amelyet az SQL Server 2008 (10.0.x) bcp hoz létre, de az SQL Server 2008 (10.0.x) bcp nem tudja olvasni az SQL Server 2014 (12.x) bcp által létrehozott 12.0-s formátumú fájlt.
Oszlopok száma Az adatfájl mezőinek száma. Ennek a számnak minden sorban azonosnak kell lennie.

A többi formátumfájlmező a tömegesen importálandó vagy exportálandó adatmezőket írja le. Minden adatmezőnek külön sorra van szüksége a formátumfájlban. Minden formátumfájl-sor az alábbi táblázatban ismertetett formátum-fájl mezők értékeit tartalmazza.

Formátumfájl mező Leírás
Hosztfájl mezősorrendje Az adatfájl egyes mezőinek pozícióját jelző szám. A sor első mezője 1, és így tovább.
Gazdafájl adattípusa Az adatfájl adott mezőjében tárolt adattípust jelzi. ASCII-adatfájlokkal használja az SQLCHAR-t; natív formátumú adatfájlok esetén használja az alapértelmezett adattípusokat. További információ: Fájltároló típusának megadása bcp használatával (SQL Server).
Előtag hossza A mezőhöz tartozó hosszelőtag-karakterek száma. Az előtag érvényes hossza 0, 1, 2, 4 és 8. A hosszelőtag megadásának elkerülése érdekében állítsa ezt 0 értékre. Ha a mező adatértékeket tartalmaz NULL , hosszelőtagot kell megadni. További információ: Az előtag hosszának megadása adatfájlokban a bcp (SQL Server) használatával.
Hosztfájl adathossza Az adatfájl adott mezőjében tárolt adattípus maximális hossza bájtban kifejezve.

Ha egy nem XML formátumú fájlt hoz létre egy tagolt szövegfájlhoz, akkor minden adatmező gazdafájl adathosszához megadhatja a 0 értéket. Ha egy 0 előtagú és egy terminátort is importáló tagolt szövegfájlt importál, a rendszer figyelmen kívül hagyja a mezőhossz értékét, mivel a mező által használt tárterület megegyezik az adatok és a terminátor hosszával.

További információ: Mezőhossz megadása a bcp (SQL Server) használatával.
Terminátor Határolójel az adatfájl mezőinek elválasztásához. A gyakori terminátorok a vessző (,), a tab (\t) és a sor vége (\r\n). További információ: Mező- és sorkifejezések megadása (SQL Server).
Kiszolgálóoszlop sorrendje Annak sorrendje, hogy mely oszlopok jelenjenek meg az SQL Server-táblában. Ha például az adatfájl negyedik mezője egy SQL Server-tábla hatodik oszlopára van leképezve, a negyedik mező kiszolgálóoszlop-sorrendje 6.

Ha meg szeretné akadályozni, hogy a tábla egy oszlopa bármilyen adatot fogadjon az adatfájlból, állítsa a kiszolgáló oszlopsorrendjének értékét a következőre 0: .
Kiszolgálóoszlop neve Az SQL Server-táblából másolt oszlop neve. A mező tényleges neve nem kötelező, de a formátumfájl mezője nem lehet üres.
Oszlop rendezés A karakter- és Unicode-adatok adatfájlban való tárolására használt rendezés.

Megjegyzés:

Módosíthatja a formátumfájlt, hogy tömegesen importálhasson olyan adatfájlból, amelyben a mezők száma vagy sorrendje eltér a táblaoszlopok számától vagy sorrendjétől. További információkért tekintse meg a Kapcsolódó feladatok listát.

Példa nem XML formátumú fájlra

Az alábbi példa egy korábban létrehozott nem XML formátumú fájlt (myDepartmentIdentical-f-c.fmt) mutat be. Ez a fájl egy karakter-adat mezőt ír le a mintaadatbázis táblájának HumanResources.Department minden oszlopához AdventureWorks2025 .

A létrehozott formátumfájl (myDepartmentIdentical-f-c.fmt) a következő információkat tartalmazza:

12.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""

Megjegyzés:

A nem XML formátumú fájlhoz kapcsolódó formátumfájl-mezőket bemutató ábrát a nem XML formátumú fájlok struktúrája című témakörben talál.