Nicht-XML-Formatdateien (SQL Server)Non-XML Format Files (SQL Server)

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

In SQL Server 2017SQL Server 2017werden zwei Typen von Formatdateien zum Massenexportieren und -importieren unterstützt: Nicht-XML-Formatdateien und XML-Formatdateien.In SQL Server 2017SQL Server 2017, two types of format files are supported for bulk exporting and importing: non-XML format files and XML format files.

In diesem Thema:In this Topic:

Vorteile von Nicht-XML-FormatdateienBenefits of Non-XML Format Files

  • Sie können eine Nicht-XML-Formatdatei automatisch erstellen, indem Sie die format -Option in einem bcp -Befehl angeben.You can create a non-XML format file automatically by specifying the format option in a bcp command.

  • Wenn Sie eine vorhandene Formatdatei in einem bcp -Befehl angeben, verwendet der Befehl die in der Formatdatei aufgezeichneten Werte, und Sie werden nicht aufgefordert, Dateispeichertyp, Präfixlänge, Feldlänge oder Feldabschlusszeichen anzugeben.When you specify an existing format file in a bcp command, the command uses the values that are recorded in the format file and does not prompt you for the file storage type, prefix length, field length, or field terminator.

  • Sie können eine Formatdatei für einen bestimmten Datentyp z. B. Zeichendaten oder systemeigene Daten erstellen.You can create a format file for a particular data type such as character data or native data.

  • Sie können Nicht-XML-Formatdateien erstellen, die interaktiv angegebene Attribute für jedes Datenfeld enthalten.You can create a non-XML format file that contains interactively specified attributes for each data field. Weitere Informationen finden Sie unter Angeben von Datenformaten für die Kompatibilität bei Verwendung von „bcp“ (SQL Server).For more information, see Specify Data Formats for Compatibility when Using bcp (SQL Server).

Hinweis

XML-Formatdateien bieten verschiedene Vorteile gegenüber Nicht-XML-Formatdateien.XML format files offer several advantages over non-XML format files. Weitere Informationen finden Sie unter XML-Formatdateien (SQL Server).For more information, see XML Format Files (SQL Server).

Struktur von Nicht-XML-FormatdateienStructure of Non-XML Format Files

Bei einer Nicht-XML-Formatdatei handelt es sich um eine Textdatei mit einer speziellen Struktur.A non-XML format file is a text file that has a specific structure. Die Nicht-XML-Formatdatei enthält Informationen zu Dateispeichertyp, Präfixlänge, Feldlänge und Feldabschlusszeichen jeder Tabellenspalte.The non-XML format file contains information about the file storage type, prefix length, field length, and field terminator of every table column.

In der folgenden Abbildung werden die Felder der Formatdatei in einem Beispiel einer Nicht-XML-Formatdatei gezeigt.The following illustration illustrates the format-file fields for a sample non-XML format file.

Identifiziert die Felder einer Datei, die nicht im XML-Format vorliegt

Die Felder Version und Anzahl der Spalten kommen nur einmal vor.The Version and Number of columns fields occur one time only. Die Bedeutung dieser Felder wird in der folgenden Tabelle beschrieben.Their meanings are describes in the following table.

Feld in der FormatdateiFormat-file field und BeschreibungDescription
VersionsoptionenVersion Versionsnummer des Hilfsprogramms bcp :Version number of the bcp utility:

9.0 = SQL Server 2005 (9.x)SQL Server 2005 (9.x)9.0 = SQL Server 2005 (9.x)SQL Server 2005 (9.x)

10.0 = SQL Server 2008SQL Server 200810.0 = SQL Server 2008SQL Server 2008

11.0 = SQL Server 2012 (11.x)SQL Server 2012 (11.x)11.0 = SQL Server 2012 (11.x)SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)SQL Server 2014 (12.x)12.0 = SQL Server 2014 (12.x)SQL Server 2014 (12.x)

Die Versionsnummer wird nur von bcperkannt, nicht von Transact-SQLTransact-SQL.The version number is recognized only by bcp, not by Transact-SQLTransact-SQL.



Hinweis: Die Version des zum Lesen einer Formatdatei verwendeten Hilfsprogramms bcp (Bcp.exe) muss mit der Version, mit der die Formatdatei erstellt wurde, übereinstimmen oder höher sein.Note: The version of the bcp utility (Bcp.exe) used to read a format file must be the same as, or a later version than was used to create the format file. SQL Server 2012 (11.x)SQL Server 2012 (11.x) bcp liest z.B. Formatdateien der Version 10.0, die von SQL Server 2008SQL Server 2008 bcp generiert wurden, aber SQL Server 2008SQL Server 2008 bcp liest keine Formatdateien der Version 12.0, die von SQL Server 2014 (12.x)SQL Server 2014 (12.x) bcp generiert wurden.For example, SQL Server 2012 (11.x)SQL Server 2012 (11.x)bcp can read a version 10.0 format file, which is generated by SQL Server 2008SQL Server 2008bcp, but SQL Server 2008SQL Server 2008bcp cannot read a version 12.0 format file, which is generated by SQL Server 2014 (12.x)SQL Server 2014 (12.x)bcp.
Anzahl der SpaltenNumber of columns Anzahl der Felder in der Datendatei.Number of fields in the data file. Diese Anzahl muss für alle Zeilen identisch sein.This number must be the same in all rows.

Die anderen Felder der Formatdatei beschreiben die Datenfelder, die massenimportiert bzw. exportiert werden sollen.The other format-file fields describe the data fields that are to be bulk imported or exported. Jedes Datenfeld nimmt eine eigene Zeile in der Formatdatei ein.Each data field requires a separate row in the format file. Jede Zeile der Formatdatei enthält Werte für die Felder der Formatdatei. Diese Felder werden in der folgenden Tabelle beschrieben.Every format-file row contains values for the format-file fields that are described in the following table.

Feld in der FormatdateiFormat-file field und BeschreibungDescription
Reihenfolge der Felder der HostdateiHost file field order Eine Zahl, die die Position jedes Felds in der Datendatei angibt.A number that indicates the position of each field in the data file. Das erste Feld in der Zeile ist 1 usw.The first field in the row is 1, and so on.
Datentyp in der HostdateiHost file data type Gibt den Datentyp an, der in einem bestimmten Feld der Datendatei gespeichert wird.Indicates the data type that is stored in a given field of the data file. Bei ASCII-Datendateien verwenden Sie SQLCHAR, bei Datendateien im systemeigenen Format verwenden Sie Standarddatentypen.With ASCII data files, use SQLCHAR; for native format data files, use default data types. Weitere Informationen finden Sie unter Angeben des Dateispeichertyps mithilfe von bcp (SQL Server).For more information, see Specify File Storage Type by Using bcp (SQL Server).
PräfixlängePrefix length Anzahl der Längenpräfixzeichen für dieses Feld.Number of length prefix characters for the field. Die gültigen Präfixlängen sind 0, 1, 4 und 8.Valid prefix lengths are 0, 1, 2, 4, and 8. Um das Längenpräfix nicht angeben zu müssen, legen Sie die Länge auf 0 fest.To avoid specifying the length prefix, set this to 0. Ein Längenpräfix muss angegeben werden, wenn das Feld NULL-Datenwerte enthält.A length prefix must be specified if the field contains NULL data values. Weitere Informationen finden Sie unter Angeben der Präfixlänge in Datendateien mittels bcp (SQL Server).For more information, see Specify Prefix Length in Data Files by Using bcp (SQL Server).
Datenlänge in der HostdateiHost file data length Maximale Länge (in Byte) des Datentyps, der in diesem Feld der Datendatei gespeichert ist.Maximum length, in bytes, of the data type stored in the particular field of the data file.

Wenn Sie eine Nicht-XML-Formatdatei für eine durch Tabstopps getrennte Textdatei erstellen, können Sie für die Hostdatei 0 als Datenlänge jedes Datenfelds angeben.If you are creating a non-XML format file for a delimited text file, you can specify 0 for the host file data length of every data field. Wenn in eine durch Tabstopps getrennte Textdatei mit einer Präfixlänge von 0 ein Zeilenabschlusszeichen importiert wird, wird die Feldlänge ignoriert, da der von dem Feld in Anspruch genommene Speicherplatz der Länge der Daten plus Abschlusszeichen entspricht.When a delimited text file having a prefix length of 0 and a terminator is imported, the field-length value is ignored, because the storage space used by the field equals the length of the data plus the terminator.

Weitere Informationen finden Sie unter Angeben der Feldlänge mithilfe von bcp (SQL Server).For more information, see Specify Field Length by Using bcp (SQL Server).
AbschlusszeichenTerminator Trennzeichen, um die Felder in der Datendatei voneinander zu trennen.Delimiter to separate the fields in a data file. Häufig verwendete Trennzeichen sind Komma (,), Tabstopp (\t) und Zeilenende (\r\n).Common terminators are comma (,), tab (\t), and end of line (\r\n). Weitere Informationen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).
Reihenfolge der ServerspaltenServer column order Die Reihenfolge, in der die Spalten in der SQL ServerSQL Server -Tabelle angezeigt werden.Order in which columns appear in the SQL ServerSQL Server table. Wenn beispielsweise das vierte Feld in der Datendatei der sechsten Spalte in einer SQL ServerSQL Server -Tabelle zugeordnet wird, wird das vierte Feld in der Serverspalte 6 eingefügt.For example, if the fourth field in the data file maps to the sixth column in a SQL ServerSQL Server table, the server column order for the fourth field is 6.

Um zu verhindern, dass eine Spalte in der Tabelle Daten aus der Datendatei empfängt, legen Sie den Wert für die Reihenfolge der Serverspalten auf 0 fest.To prevent a column in the table from receiving any data from the data file, set the server column order value to 0.
Name der ServerspalteServer column name Der Name der aus der SQL ServerSQL Server -Tabelle kopierten Spalte.Name of the column copied from the SQL ServerSQL Server table. Der tatsächliche Name des Felds muss nicht unbedingt verwendet werden, aber das Feld in der Formatdatei darf nicht leer sein.The actual name of the field is not required, but the field in the format file must not be blank.
SpaltensortierungColumn collation Die Sortierung zum Speichern von Zeichendaten und Unicode-Daten in der Datendatei.The collation used to store character and Unicode data in the data file.

Hinweis

Sie können eine Formatdatei so ändern, dass Sie einen Massenimport aus einer Datendatei ausführen können, in der die Anzahl oder Reihenfolge der Felder von der Anzahl oder Reihenfolge der Tabellenspalten abweicht.You can modify a format file to let you bulk import from a data file in which the number or order of the fields are different from the number or order of table columns. Weitere Informationen finden Sie weiter unten in diesem Thema unter Verwandte Aufgaben .For more information, see the Related Tasks list, later in this topic.

Beispiel für eine Nicht-XML-FormatdateiExample of a Non-XML Format File

Das folgende Beispiel zeigt eine zuvor erstellte Nicht-XML-Formatdatei (myDepartmentIdentical-f-c.fmt).The following example shows a previously created non-XML format file (myDepartmentIdentical-f-c.fmt). Diese Datei beschreibt ein Zeichendatenfeld für jede Spalte in der HumanResources.Department -Tabelle der AdventureWorks2012 -Beispieldatenbank.This file describes a character-data field for every column in the HumanResources.Department table in the AdventureWorks2012 sample database.

Die generierte Formatdatei myDepartmentIdentical-f-c.fmtenthält die folgenden Informationen:The generated format file, myDepartmentIdentical-f-c.fmt, contains the following information:

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     ""  

Hinweis

Eine Abbildung der Felder der Formatdatei in Bezug auf diese Nicht-XML-Formatdatei finden Sie unter Struktur von Nicht-XML-Formatdateienweiter oben in diesem Thema.For an illustration that shows the format-file fields in relation to this sample non-XML format file, see Structure of Non-XML Format Files, earlier in this topic.

Verwandte AufgabenRelated Tasks

Weitere InformationenSee Also

bcp (Hilfsprogramm) bcp Utility
Erstellen einer Formatdatei (SQL Server) Create a Format File (SQL Server)
XML-Formatdateien (SQL Server) XML Format Files (SQL Server)
Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)Format Files for Importing or Exporting Data (SQL Server)