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


Formátumfájl létrehozása bcp-vel (SQL Server)

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

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 bcp segédprogram (bcp.exe) verziójának meg kell egyeznie a formátumfájl létrehozásához használt verzióval vagy újabb verzióval. Az SQL Server 2016 (13.x) bcp például beolvashat egy 12.0-s formátumú fájlt, amelyet az SQL Server 2014 (12.x) bcphoz létre, de az SQL Server 2014 (12.x) bcp nem tudja olvasni az SQL Server 2016 (13.x) bcpáltal létrehozott 13.0-s formátumú fájlt.

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- é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 a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le. Az Adventure Works Cycles egy kitalált gyártó vállalat, amely az adatbázis-fogalmakat és forgatókönyveket mutatja be.

XML-formátumfájl létrehozása

Ha bcp parancsot szeretne használni egy formátumfájl létrehozásához, adja meg a format argumentumot, és adatfájl elérési útja helyett használja a nul. A format beállításhoz mindig szükség van a -f beállításra, és xml formátumú fájl létrehozásához meg kell adnia a -x beállítást is, például bcp <table_or_view> format nul -f <format_file_name> -x.

Az XML formátumú fájlok megkülönböztetéséhez javasoljuk, hogy a .xml fájlnévkiterjesztésként használja, például MyTable.xml.

Az XML-formátumú fájlok szerkezetéről és mezőiről további információt XML-formátumfájlok (SQL Server)című témakörben talál.

Példák

Ez a szakasz az alábbi példákat tartalmazza, amelyek bemutatják, hogyan használható bcp parancsok XML-formátumú fájl létrehozásához. A HumanResources.Department táblázat négy oszlopot tartalmaz: DepartmentID, Name, GroupNameés ModifiedDate.

Egy. XML-formátumfájl létrehozása karakteradatokhoz

Az alábbi példa egy XML formátumú fájlt hoz létre Department.xmla HumanResources.Department táblához. A formátumfájl karakteradat-formátumokat és nem alapértelmezett mezővégződőt (,) használ. A létrehozott formátumfájl tartalma a parancs után jelenik meg.

A bcp parancs a következő minősítőket 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 a bcp segédprogram megbízható kapcsolattal csatlakozik az SQL Serverhez integrált biztonság használatával. Ha nincs megadva -T, meg kell adnia -U és -P a sikeres bejelentkezéshez.

A Windows parancssorában adja meg a következő bcp parancsot:

bcp AdventureWorks2022.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>

A formátumfájl szintaxisáról további információt XML-formátumfájlok (SQL Server)című témakörben talál. További információ a karakteradatokról: Karakterformátum használata adatok importálásához vagy exportálásához (SQL Server).

B. XML-formátumfájl létrehozása natív adatokhoz

Az alábbi példa egy XML formátumú fájlt hoz létre Department-n.xmla HumanResources.Department táblához. A formátumfájl natív adattípusokat használ. A létrehozott formátumfájl tartalma a parancs után jelenik meg.

A bcp parancs a következő minősítőket 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 a bcp segédprogram megbízható kapcsolattal csatlakozik az SQL Serverhez integrált biztonság használatával. Ha nincs megadva -T, meg kell adnia -U és -P a sikeres bejelentkezéshez.

A Windows parancssorában adja meg a következő bcp parancsot:

bcp AdventureWorks2022.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>

A formátumfájl szintaxisáról további információt XML-formátumfájlok (SQL Server)című témakörben talál. Azok számára, akik a natív formátum használatáról szeretnének többet megtudni, lásd Adatok importálása vagy exportálása (SQL Server).

Adatmezők leképezése táblázatoszlopok számára

A bcpáltal létrehozott formátumfájl az összes táblázatoszlopot sorrendben írja le. Módosíthatja a formátumfájlt a táblázatsorok átrendezéséhez vagy kihagyásához. 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: