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


Fájlok formázása adatok importálásához vagy exportálásához (SQL Server)

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

Amikor tömegesen importál adatokat egy SQL Server-táblába, vagy tömegesen exportál adatokat egy táblából, egy formátumfájlt használhat az adatok tömeges exportálásához vagy tömeges importálásához szükséges összes formátuminformáció tárolásához. Ide tartoznak az adatfájl egyes mezőinek formázási adatai az adott táblához képest.

Az SQL Server kétféle formátumfájlt támogat: XML-formátumokat és nem XML formátumú fájlokat. A nem XML formátumú fájlok és az XML-formátumú fájlok egyaránt tartalmazzák az adatfájl minden mezőjének leírását, az XML-formátumfájlok pedig a megfelelő táblaoszlopok leírását is. Az XML- és a nem XML formátumú fájlok általában felcserélhetők. Javasoljuk azonban, hogy az XML-szintaxist használja az új formátumfájlokhoz, mert ezek számos előnyt biztosítanak a nem XML formátumú fájlokkal szemben. További információ: XML Format Files (SQL Server).

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.

A fájlok formázásának előnyei

A formátumfájlok rugalmas rendszert biztosítanak olyan adatfájlok írásához, amelyek szerkesztéséhez kevés vagy nem szükséges szerkesztés, hogy megfeleljenek más adatformátumoknak, vagy hogy más szoftverekből olvassák az adatfájlokat.

Az adatokat tömegesen importálhatja anélkül, hogy szükségtelen adatokat kellene hozzáadnia vagy törölnie, vagy átrendeznie a meglévő adatokat az adatfájlban. A fájlok formázása akkor lehet hasznos, ha az adatfájl mezői és a tábla oszlopai között eltérés áll fenn.

Példák fájlok formázására

Az alábbi példák egy nem XML formátumú fájl és egy XML formátumú fájl elrendezését mutatják be. Ezek a formátumfájlok a HumanResources.myTeam mintaadatbázis AdventureWorks2025 táblájának felelnek meg. Ez a táblázat négy oszlopot tartalmaz: EmployeeID, Name, Titleés ModifiedDate.

Jegyzet

További információért erről a táblázatról és annak létrehozásáról lásd a HumanResources.myTeam mintatáblázatot (SQL Server).

Egy. Nem XML formátumú fájl használata

Az alábbi nem XML formátumú fájl az SQL Server natív adatformátumát használja a HumanResources.myTeam táblához. Ez a formátumfájl a következő bcp paranccsal lett létrehozva.

bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T

A bcp parancs alapértelmezés szerint a Windows-hitelesítéssel rendelkező SQL Server egy helyi, alapértelmezett példányára érvényes. A kívánt más példány- és bejelentkezési adatokat is megadhatja; további információért lásd a(z) bcp segédprogram. Például, ha egy távoli kiszolgáló nevű példányt szeretne megadni Windows-hitelesítéssel, használja a következőt:

bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T -S servername/instancename

A formátumfájl tartalma a következő, kezdve az SQL Server főverziószámával és a tábla metaadataival.

14.0
4
1       SQLSMALLINT   0       2       ""   1     EmployeeID               ""
2       SQLNCHAR      2       100     ""   2     Name                     SQL_Latin1_General_CP1_CI_AS
3       SQLNCHAR      2       100     ""   3     Title                    SQL_Latin1_General_CP1_CI_AS
4       SQLNCHAR      2       100     ""   4     Background               SQL_Latin1_General_CP1_CI_AS

További információ: Nem XML formátumú fájlok használata (SQL Server).

B. XML formátumú fájl használata

Az alábbi XML-formátumfájl az SQL Server natív adatformátumát használja a HumanResources.myTeam táblához. Ez a formátumfájl a következő bcp paranccsal lett létrehozva.

bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.xml -x -n -T

A formátumfájl a következőket 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="NativePrefix" LENGTH="1"/>
  <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="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
  <COLUMN SOURCE="1" NAME="EmployeeID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="Title" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="Background" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>

További információ: XML Format Files (SQL Server).

Mikor van szükség formátumfájlra?

A formátumfájlokra általában a következő körülmények között van szükség:

  • Amikor INSERT ... SELECT * FROM OPENROWSET(BULK...) utasítást használ.

  • Összetett tömeges importálási helyzetekhez bcp vagy BULK INSERThasználatával.

  • Ugyanazt az adatfájlt használja a rendszer több különböző sémával rendelkező tábla forrásaként.

  • Az adatfájl különböző számú mezővel rendelkezik, amelyeket a céltábla oszlopokkal tartalmaz; például:

    • A céltábla legalább egy olyan oszlopot tartalmaz, amelyhez alapértelmezett érték van definiálva, vagy NULL engedélyezett.
    • A felhasználók nem rendelkeznek SELECT/INSERT engedélyekkel a tábla egy vagy több oszlopához.
    • A rendszer egyetlen adatfájlt használ két vagy több különböző sémával rendelkező táblával.
  • Az oszlop sorrendje eltér az adatfájltól és a táblától.

  • A végződő karakterek vagy előtagok hossza eltér az adatfájl oszlopai között.

Jegyzet

Formátumfájl hiányában, ha egy bcp parancs adatformátum kapcsolót (-n, -c, -wvagy -N) határoz meg, vagy egy BULK INSERT művelet megadja a DATAFILETYPE beállítást, a megadott adatformátum lesz az adatfájl mezőinek alapértelmezett értelmezése.