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

SQL Server 2017SQL Server 2017 stellt ein XML-Schema bereit, das die Syntax für das Schreiben von XML-Formatdateien definiert, die zum Übertragen von Daten in eine SQL ServerSQL Server -Tabelle per Massenimport verwendet werden. provides an XML schema that defines syntax for writing XML format files to use for bulk importing data into a SQL ServerSQL Server table. XML-Formatdateien müssen sich an dieses Schema halten, das in XSDL (XML Schema Definition Language) definiert ist.XML format files must adhere to this schema, which is defined in the XML Schema Definition Language (XSDL). XML-Formatdateien werden nur unterstützt, wenn die SQL ServerSQL Server-Tools zusammen mit SQL ServerSQL Server Native Client installiert werden.XML format files are only supported when SQL ServerSQL Server tools are installed together with SQL ServerSQL Server Native Client.

Eine XML-Formatdatei kann mit dem Befehl bcp, einer BULK INSERT-Anweisung oder einer INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisung verwendet werden.You can use an XML format file with a bcp command, BULK INSERT statement, or INSERT ... SELECT * FROM OPENROWSET(BULK...) statement. Mithilfe des bcp -Befehls können Sie automatisch eine XML-Formatdatei für eine Tabelle generieren. Weitere Informationen finden Sie unter bcp Utility.The bcp command allows you to automatically generate an XML format file for a table; for more information, see bcp Utility.

Hinweis

Zwei Typen von Formatdateien werden zum Massenexportieren und -importieren unterstützt: Nicht-XML-Formatdateien und XML-Formatdateien.Two types of format files are supported for bulk exporting and importing: non-XML format files and XML format files. XML-Formatdateien bieten eine flexible und leistungsfähige Alternative zu Nicht-XML-Formatdateien.XML format files provide a flexible and powerful alternative to non-XML format files. Informationen zu Nicht-XML-Formatdateien finden Sie unter Nicht-XML-Formatdateien (SQL Server).For information about non-XML format files, see Non-XML Format Files (SQL Server).

In diesem Thema:In This Topic:

Vorteile von XML-Formatdateien Benefits of XML Format Files

  • XML-Formatdateien sind selbstbeschreibend, wodurch das Lesen, Erstellen und Erweitern erleichtert wird.XML format files are self-describing, making them easy to read, create, and extend. Sie können vom Benutzer gelesen werden, sodass dieser nachvollziehen kann, wie Daten bei Massenvorgängen interpretiert werden.They are human readable, making it easy to understand how data is interpreted during bulk operations.

  • XML-Formatdateien enthalten die Datentypen von Zielspalten.XML format files contain the data types of target columns. Die XML-Codierung enthält eine klare Beschreibung der Datentypen und Datenelemente der Datendatei sowie der Zuordnung zwischen den Datenelementen und den Tabellenspalten.The XML encoding clearly describes the data types and data elements of the data file and also the mapping between data elements and table columns.

    Dies ermöglicht die Trennung zwischen der Darstellungsweise von Daten in den Datendateien und der Zuordnung des betreffenden Datentyps für jedes Feld in der Datei.This enables separation between how data is represented in the data file and what data type is associated with each field in the file. Wenn z. B. eine Datendatei eine Zeichendarstellung der Daten enthält, geht der entsprechende SQL-Spaltentyp verloren.For example, if a data file contains a character representation of the data, the corresponding SQL column type is lost.

  • Eine XML-Formatdatei ermöglicht das Laden eines Felds aus einer Datendatei, das einen einzigen LOB-Datentyp (Large Object) enthält.An XML format file allows for loading of a field that contains a single large object (LOB) data type from a data file.

  • Eine XML-Formatdatei kann erweitert werden und bleibt dennoch mit früheren Versionen kompatibel.An XML format file can be enhanced yet remain compatible with its earlier versions. Darüber hinaus erleichtert die Übersichtlichkeit der XML-Codierung die Erstellung mehrerer Formatdateien für eine bestimmte Datendatei.Furthermore, the clarity of XML encoding facilitates the creation of multiple format files for a given data file. Dies ist von Nutzen, wenn Sie alle oder einige Datenfelder den Spalten in verschiedenen Tabellen oder Sichten zuordnen müssen.This is useful if you have to map all or some of the data fields to columns in different tables or views.

  • Die XML-Syntax einer Formatdatei ist unabhängig von der Richtung des Vorgangs, die Syntax ist also für Massenexport und Massenimport identisch.The XML syntax is independent of the direction of the operation; that is, the syntax is the same for bulk export and bulk import.

  • Sie können XML-Formatdateien verwenden, um Massenimporte von Daten in Tabellen bzw. nicht partitionierte Sichten oder Massenexporte von Daten auszuführen.You can use XML format files to bulk import data into tables or non-partitioned views and to bulk export data.

  • Bei einer OPENROWSET (BULK...)-Funktion ist die Angabe einer Zieltabelle optional.For the OPENROWSET(BULK...) function specifying a target table is optional. Das liegt daran, dass die Funktion die XML-Formatdatei zum Lesen von Daten aus einer Datendatei benötigt.This is because the function relies on the XML format file to read data from a data file.

    Hinweis

    Beim bcp -Befehl und der BULK INSERT-Anweisung ist eine Zieltabelle erforderlich, die mithilfe der Zieltabellenspalten die Typkonvertierung durchführt.A target table is necessary with the bcp command and the BULK INSERT statement, which uses the target table columns to do the type conversion.

Struktur von XML-Formatdateien Structure of XML Format Files

XML-Formatdateien definieren, ebenso wie Nicht-XML-Formatdateien, das Format und die Struktur der Datenfelder in einer Datendatei und ordnen diese Datenfelder den Spalten in einer einzigen Zieltabelle zu.Like a non-XML format file, an XML format file defines the format and structure of the data fields in a data file and maps those data fields to columns in a single target table.

Eine XML-Formatdatei besteht aus zwei Hauptkomponenten: <RECORD> und <ROW>:An XML format file possesses two main components, <RECORD> and <ROW>:

  • <RECORD> beschreibt die Daten, die in der Datendatei gespeichert werden.<RECORD> describes the data as it is stored in the data file.

    Jedes <RECORD>-Element enthält einen Satz mit einem oder mehreren <FIELD>-Elementen.Each <RECORD> element contains a set of one or more <FIELD> elements. Diese Elemente entsprechen den Feldern in der Datendatei.These elements correspond to fields in the data file. Die Basissyntax lautet wie folgt:The basic syntax is as follows:

    <RECORD><RECORD>

    <FIELD .../> [ ...n ]<FIELD .../> [ ...n ]

    </RECORD></RECORD>

    Jedes <FIELD>-Element beschreibt den Inhalt eines bestimmten Datenfelds.Each <FIELD> element describes the contents of a specific data field. Ein Feld kann jeweils nur einer Spalte in der Tabelle zugeordnet werden.A field can only be mapped to one column in the table. Nicht alle Felder müssen Spalten zugeordnet werden.Not all fields need to be mapped to columns.

    Ein Feld in einer Datendatei kann eine feste bzw. variable Länge aufweisen oder durch Zeichen abgeschlossen sein.A field in a data file can be either of fixed/variable length or character terminated. Ein Feldwert kann als ein Zeichen (mit Einzelbytedarstellung), als ein Doppelbytezeichen (mit Unicode-Doppelbytedarstellung), als ein systemeigenes Datenbankformat oder als ein Dateiname dargestellt werden.A field value can be represented as: a character (using single-byte representation), a wide character (using Unicode two-byte representation), native database format, or a file name. Wird ein Feldwert als Dateiname dargestellt, verweist der Dateiname auf die Datei, die den Wert einer BLOB-Spalte in der Zieltabelle enthält.If a field value is represented as a file name, the file name points to the file that contains the value of a BLOB column in the target table.

  • <ROW> beschreibt, wie aus einer Datendatei Datenzeilen konstruiert werden können, wenn die Daten aus der Datei in eine SQL ServerSQL Server-Tabelle importiert werden.<ROW> describes how to construct data rows from a data file when the data from the file is imported into a SQL ServerSQL Server table.

    Ein <ROW>-Element enthält einen Satz von <COLUMN>-Elementen.A <ROW> element contains a set of <COLUMN> elements. Diese Elemente entsprechen den Tabellenspalten.These elements correspond to table columns. Die Basissyntax lautet wie folgt:The basic syntax is as follows:

    <ROW><ROW>

    <COLUMN .../> [ ...n ]<COLUMN .../> [ ...n ]

    </ROW></ROW>

    Jedes <COLUMN>-Element kann jeweils nur einem Feld in der Datendatei zugeordnet werden.Each <COLUMN> element can be mapped to only one field in the data file. Die Reihenfolge der <COLUMN>-Elemente im <ROW>-Element definiert, in welcher Reihenfolge diese durch den Massenvorgang zurückgegeben werden.The order of the <COLUMN> elements in the <ROW> element defines the order in which they are returned by the bulk operation. Die XML-Formatdatei weist jedem <COLUMN>-Element einen lokalen Namen zu, der keine Verbindung zu der Spalte in der Zieltabelle des Massenimportvorgangs aufweist.The XML format file assigns each <COLUMN> element a local name that has no relationship to the column in the target table of a bulk import operation.

Schemasyntax für XML-Formatdateien Schema Syntax for XML Format Files

Dieser Abschnitt enthält eine Zusammenfassung der Elemente und Attribute des XML-Schemas für XML-Formatdateien.This section contains a summary of the elements and attributes of the XML schema for XML format files. Die Syntax einer Formatdatei ist unabhängig von der Richtung des Vorgangs, die Syntax ist also für Massenexport und Massenimport identisch.The syntax of a format file is independent of the direction of the operation; that is, the syntax is the same for bulk export and bulk import. Darüber hinaus wird in diesem Abschnitt dargestellt, wie <ROW>- und <COLUMN>-Elemente beim Massenimportieren verwendet werden und wie der xsi:type-Wert eines Elements in ein Dataset eingefügt wird.This section also considers how bulk import uses the <ROW> and <COLUMN> elements and how to put the xsi:type value of an element into a data set.

Unter Beispiele für XML-Formatdateienweiter unten in diesem Thema können Sie die Syntax mit tatsächlichen XML-Formatdateien vergleichen.To see how the syntax corresponds to actual XML format files, see Sample XML Format Files, later in this topic.

Hinweis

Sie können eine Formatdatei so ändern, dass Sie einen Massenimport von einer Datendatei durchführen können, in der die Anzahl und/oder Reihenfolge der Felder von der Anzahl und/oder Reihenfolge der Tabellenspalten abweicht.You can modify a format file to let you bulk import from a data file in which the number and/or order of the fields differ from the number and/or order of table columns. Weitere Informationen finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten (SQL Server).For more information, see Format Files for Importing or Exporting Data (SQL Server).

In diesem Abschnitt:In This Section:

Basissyntax des XML-Schemas Basic Syntax of the XML Schema

Diese Syntaxanweisungen zeigen nur die Elemente (<BCPFORMAT>, <RECORD>, <FIELD>, <ROW> und <COLUMN>) und deren grundlegende Attribute an.This syntax statements show only the elements (<BCPFORMAT>, <RECORD>, <FIELD>, <ROW>, and <COLUMN>) and their basic attributes.

<BCPFORMAT ...><BCPFORMAT ...>

<RECORD><RECORD>

<FIELD ID = "fieldID" xsi:type = "fieldType" [...]<FIELD ID = "fieldID" xsi:type = "fieldType" [...]

/>

</RECORD></RECORD>

<ROW><ROW>

<COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]<COLUMN SOURCE = "fieldID" NAME = "columnName" xsi:type = "columnType" [...]

/>

</ROW></ROW>

</BCPFORMAT></BCPFORMAT>

Hinweis

Zusätzliche Attribute, die mit dem Wert von xsi:type in einem <FIELD>- oder <COLUMN>-Element verknüpft sind, werden weiter unten in diesem Thema beschrieben.Additional attributes that are associated with the value of the xsi:type in a <FIELD> or <COLUMN> element are described later in this topic.

In diesem Abschnitt:In This Section:

Schema-Elemente Schema Elements

In diesem Abschnitt werden die Funktionen aller Elemente dargestellt, die das XML-Schema für XML-Formatdateien definiert.This section summarizes the purpose of each element that the XML schema defines for XML format files. Die Attribute werden in separaten Abschnitten weiter unten in diesem Thema beschrieben.The attributes are described in separate sections later in this topic.

<BCPFORMAT><BCPFORMAT>
Ist das Element der Formatdatei, das die Datensatzstruktur einer bestimmten Datendatei und ihre Übereinstimmung mit den Spalten einer Tabellenzeile in einer Tabelle definiert.Is the format-file element that defines the record structure of a given data file and its correspondence to the columns of a table row in the table.

<RECORD .../><RECORD .../>
Definiert ein komplexes Element, das ein oder mehrere <FIELD>-Elemente enthält.Defines a complex element containing one or more <FIELD> elements. Die Reihenfolge, in der die Felder in der Formatdatei deklariert werden, entspricht der Reihenfolge, in der diese Felder in der Datendatei angezeigt werden.The order in which the fields are declared in the format file is the order in which those fields appear in the data file.

<FIELD .../><FIELD .../>
Definiert ein Feld in der Datendatei, das Daten enthält.Defines a field in data file, which contains data.

Die Attribute dieses Elements werden unter Attribute des <FIELD>-Elements weiter unten in diesem Thema beschrieben.The attributes of this element are discussed in Attributes of the <FIELD> Element, later in this topic.

<ROW .../><ROW .../>
Definiert ein komplexes Element, das ein oder mehrere <COLUMN>-Elemente enthält.Defines a complex element containing one or more <COLUMN> elements. Die Reihenfolge der <COLUMN>-Elemente ist unabhängig von der Reihenfolge der <FIELD>-Elemente in einer RECORD-Definition.The order of the <COLUMN> elements is independent of the order of <FIELD> elements in a RECORD definition. Stattdessen bestimmt die Reihenfolge der <COLUMN>-Elemente in einer Formatdatei die Reihenfolge der Spalten im zurückgegebenen Rowset.Rather, the order of the <COLUMN> elements in a format file determines the column order of the resultant rowset. Die Datenfelder werden in der Reihenfolge geladen, in der die entsprechenden <COLUMN>-Elemente im <COLUMN>-Element deklariert werden.Data fields are loaded in the order in which the corresponding <COLUMN> elements are declared in the <COLUMN> element.

Weitere Informationen finden Sie unter Verwenden des <ROW>-Elements beim Massenimportieren weiter unten in diesem Thema.For more information, see How Bulk Import Uses the <ROW> Element, later in this topic.

<COLUMN><COLUMN>
Definiert eine Spalte als Element (<COLUMN>).Defines a column as an element (<COLUMN>). Jedes <COLUMN>-Element entspricht einem <FIELD>-Element (dessen ID im SOURCE-Attribut des <COLUMN>-Elements angegeben ist).Each <COLUMN> element corresponds to a <FIELD> element (whose ID is specified in the SOURCE attribute of the <COLUMN> element).

Die Attribute dieses Elements werden unter Attribute des <COLUMN>-Elements weiter unten in diesem Thema beschrieben.The attributes of this element are discussed in Attributes of the <COLUMN> Element, later in this topic. Informationen finden Sie außerdem unter Verwenden des <COLUMN>-Elements beim Massenimportieren weiter unten in diesem Thema.Also see, How Bulk Import Uses the <COLUMN> Element, later in this topic.

</BCPFORMAT></BCPFORMAT>
Ist erforderlich, um die Formatdatei zu beenden.Required to end the format file.

Attribute des <FIELD>-Elements Attributes of the <FIELD> Element

In diesem Abschnitt werden die Attribute des <FIELD>-Elements beschrieben, die in der folgenden Schemasyntax zusammengefasst sind:This section describes the attributes of the <FIELD> element, which are summarized in the following schema syntax:

<FIELD<FIELD

ID ="fieldID"ID ="fieldID"

xsi:type ="fieldType"xsi:type ="fieldType"

[ LENGTH ="n" ][ LENGTH ="n" ]

[ PREFIX_LENGTH ="p" ][ PREFIX_LENGTH ="p" ]

[ MAX_LENGTH ="m" ][ MAX_LENGTH ="m" ]

[ COLLATION ="collationName" ][ COLLATION ="collationName" ]

[ TERMINATOR ="terminator" ][ TERMINATOR ="terminator" ]

/>

Alle <FIELD>-Elemente sind unabhängig voneinander.Each <FIELD> element is independent of the others. Ein Feld wird anhand der folgenden Attribute beschrieben:A field is described in terms of the following attributes:

FIELD-AttributFIELD Attribute BeschreibungDescription Optional /Optional /

RequiredRequired
ID ="fieldID"ID ="fieldID" Gibt den logischen Namen des Felds in der Datendatei an.Specifies the logical name of the field in the data file. Die ID eines Felds ist der Schlüssel, mit dem auf das Feld verwiesen wird.The ID of a field is the key used to refer to the field.

<FIELD ID="fieldID"/> wird <COLUMN SOURCE="fieldID"/> zugeordnet.<FIELD ID="fieldID"/> maps to <COLUMN SOURCE="fieldID"/>
RequiredRequired
xsi:type ="fieldType"xsi:type ="fieldType" Dies ist ein (als Attribut verwendetes) XML-Konstrukt, das den Typ der Instanz des Elements identifiziert.This is an XML construct (used like an attribute) that identifies the type of the instance of the element. Der Wert von fieldType bestimmt, welche der optionalen Attribute (unten) in einer bestimmten Instanz erforderlich sind.The value of fieldType determines which of the optional attributes (below) you need in a given instance. Erforderlich (abhängig vom Datentyp)Required (depending on the data type)
LENGTH ="n"LENGTH ="n" Dieses Attribut definiert die Länge für eine Instanz mit einem Datentyp fester Länge.This attribute defines the length for an instance of a fixed-length data type.

Der Wert von n muss eine positive ganze Zahl sein.The value of n must be a positive integer.
Optional, sofern nicht für den xsi:type-Wert erforderlichOptional unless required by the xsi:type value
PREFIX_LENGTH ="p"PREFIX_LENGTH ="p" Dieses Attribut definiert die Präfixlänge für eine binäre Datendarstellung.This attribute defines the prefix length for a binary data representation. Bei dem PREFIX_LENGTH-Wert, p, muss es sich um eine der folgenden Zahlen handeln: 1, 2, 4 oder 8.The PREFIX_LENGTH value, p, must be one of the following: 1, 2, 4, or 8. Optional, sofern nicht für den xsi:type-Wert erforderlichOptional unless required by the xsi:type value
MAX_LENGTH ="m"MAX_LENGTH ="m" Dieses Attribut gibt die maximale Anzahl an Byte an, die in einem bestimmten Feld gespeichert werden kann.This attribute is the maximum number of bytes that can be stored in a given field. Ohne eine Zieltabelle ist die maximale Spaltenlänge nicht bekannt.Without a target table, the column max-length is not known. Das MAX_LENGTH-Attribut beschränkt die maximale Länge einer Ausgabezeichenspalte sowie den Speicherplatz, der dem Spaltenwert zugewiesen ist.The MAX_LENGTH attribute restricts the maximum length of an output character column, limiting the storage allocated for the column value. Dies ist vor allem bei Verwendung der BULK-Option der OPENROWSET-Funktion in einer SELECT FROM-Klausel nützlich.This is especially convenient when using the OPENROWSET function's BULK option in a SELECT FROM clause.

Der Wert von m muss eine positive ganze Zahl sein.The value of m must be a positive integer. Standardmäßig beträgt die maximale Länge 8000 Zeichen für eine char -Spalte und 4000 Zeichen für eine nchar -Spalte.By default, the maximum length is 8000 characters for a char column and 4000 characters for an nchar column.
OptionalOptional
COLLATION ="collationName"COLLATION ="collationName" COLLATION ist nur für Zeichenfelder zulässig.COLLATION is only allowed for character fields. Eine Liste der SQL-Sortierungsnamen finden Sie unter SQL Server-Sortierungsname (Transact-SQL).For a list of the SQL collation names, see SQL Server Collation Name (Transact-SQL). OptionalOptional
TERMINATOR = "terminator"TERMINATOR = "terminator" Dieses Attribut gibt das Abschlusszeichen eines Datenfelds an.This attribute specifies the terminator of a data field. Als Abschlusszeichen kann jedes beliebige Zeichen verwendet werden.The terminator can be any character. Es muss sich jedoch um ein eindeutiges Zeichen handeln, das nicht Teil der Daten ist.The terminator must be a unique character that is not part of the data.

Standardmäßig wird das Tabstoppzeichen (dargestellt als \t) als Abschlusszeichen verwendet.By default, the field terminator is the tab character (represented as \t). Um eine Absatzmarke darzustellen, verwenden Sie \r\n.To represent a paragraph mark, use \r\n.
Wird nur mit einem xsi:type von Zeichendaten verwendet, die dieses Attribut erfordern.Used only with an xsi:type of character data, which requires this attribute
Xsi:type-Werte des <FIELD>-Elements Xsi:type values of the <FIELD> Element

Der xsi:type-Wert ist ein (als Attribut verwendetes) XML-Konstrukt, das den Datentyp für eine Instanz eines Elements identifiziert.The xsi:type value is an XML construct (used like an attribute) that identifies the data type of an instance of an element. Weitere Informationen finden Sie unter "Einfügen des xsi:type-Werts in ein Dataset" weiter unten in diesem Abschnitt.For information on using the "Putting the xsi:type Value into a Data Set," later in this section.

Der xsi:type-Wert des <FIELD>-Elements unterstützt die folgenden Datentypen.The xsi:type value of the <FIELD> element supports the following data types.

xsi:type-Werte für <FIELD><FIELD> xsi:type values Erforderliche(s) XML-Attribut(e)Required XML Attribute(s)

für Datentypfor Data Type
Optionale(s) XML-Attribut(e)Optional XML Attribute(s)

für Datentypfor Data Type
NativeFixedNativeFixed LENGTHLENGTH Keine.None.
NativePrefixNativePrefix PREFIX_LENGTHPREFIX_LENGTH MAX_LENGTHMAX_LENGTH
CharFixedCharFixed LENGTHLENGTH COLLATIONCOLLATION
NCharFixedNCharFixed LENGTHLENGTH COLLATIONCOLLATION
CharPrefixCharPrefix PREFIX_LENGTHPREFIX_LENGTH MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION
NCharPrefixNCharPrefix PREFIX_LENGTHPREFIX_LENGTH MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION
CharTermCharTerm TERMINATORTERMINATOR MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION
NCharTermNCharTerm TERMINATORTERMINATOR MAX_LENGTH, COLLATIONMAX_LENGTH, COLLATION

Weitere Informationen zu MicrosoftMicrosoft SQL ServerSQL Server -Datentypen finden Sie unter Datentypen (Transact-SQL).For more information about MicrosoftMicrosoft SQL ServerSQL Server data types, see Data Types (Transact-SQL).

Attribute des <COLUMN>-Elements Attributes of the <COLUMN> Element

In diesem Abschnitt werden die Attribute des <COLUMN>-Elements beschrieben, die in der folgenden Schemasyntax zusammengefasst sind:This section describes the attributes of the <COLUMN> element, which are summarized in the following schema syntax:

<COLUMN<COLUMN

SOURCE = "fieldID"SOURCE = "fieldID"

NAME = "columnName"NAME = "columnName"

xsi:type = "columnType"xsi:type = "columnType"

[ LENGTH = "n" ][ LENGTH = "n" ]

[ PRECISION = "n" ][ PRECISION = "n" ]

[ SCALE = "value" ][ SCALE = "value" ]

[ NULLABLE = { "YES"[ NULLABLE = { "YES"

"NO" } ]"NO" } ]

/>

Ein Feld wird mithilfe der folgenden Attribute einer Spalte in der Zieltabelle zugeordnet:A field is mapped to a column in the target table using the following attributes:

COLUMN-AttributCOLUMN Attribute BeschreibungDescription Optional /Optional /

RequiredRequired
SOURCE ="fieldID"SOURCE ="fieldID" Gibt die ID des Felds an, das der Spalte zugeordnet wird.Specifies the ID of the field being mapped to the column.

<COLUMN SOURCE="fieldID"/> wird <FIELD ID="fieldID"/> zugeordnet.<COLUMN SOURCE="fieldID"/> maps to <FIELD ID="fieldID"/>
RequiredRequired
NAME = "columnName"NAME = "columnName" Gibt den Namen der Spalte im Rowset an, die durch die Formatdatei dargestellt wird.Specifies the name of the column in the row set represented by the format file. Dieser Spaltenname wird verwendet, um die Spalte im Resultset zu identifizieren; er muss nicht dem in der Zieltabelle verwendeten Spaltennamen entsprechen.This column name is used to identify the column in the result set, and it need not correspond to the column name used in the target table. RequiredRequired
xsi:type ="ColumnType"xsi:type ="ColumnType" Dies ist ein (als Attribut verwendetes) XML-Konstrukt, das den Datentyp der Instanz des Elements identifiziert.This is an XML construct (used like an attribute) that identifies the data type of the instance of the element. Der Wert von ColumnType bestimmt, welche der optionalen Attribute (unten) in einer bestimmten Instanz erforderlich sind.The value of ColumnType determines which of the optional attributes (below) you need in a given instance.

Hinweis: Mögliche Werte für ColumnType sowie die zugehörigen Attribute werden in der <COLUMN>-Elementtabelle im Abschnitt Xsi:type-Werte des <COLUMN>-Elements aufgelistet.Note: The possible values of ColumnType and their associated attributes are listed in the <COLUMN> element table in the Xsi:type values of the <COLUMN> Element section.
OptionalOptional
LENGTH ="n"LENGTH ="n" Definiert die Länge für eine Instanz mit einem Datentyp fester Länge.Defines the length for an instance of a fixed-length data type. LENGTH wird nur verwendet, wenn es sich bei xsi:type um einen Zeichenfolgen-Datentyp handelt.LENGTH is used only when the xsi:type is a string data type.

Der Wert von n muss eine positive ganze Zahl sein.The value of n must be a positive integer.
Optional (nur verfügbar, wenn xsi:type ein Zeichenfolgen-Datentyp ist)Optional (available only if the xsi:type is a string data type)
PRECISION ="n"PRECISION ="n" Gibt die Anzahl der Stellen einer Zahl an.Indicates the number of digits in a number. Beispielsweise hat die Zahl 123,45 eine Genauigkeit von 5.For example, the number 123.45 has a precision of 5.

Der Wert muss eine positive ganze Zahl sein.The value must be a positive integer.
Optional (nur verfügbar, wenn xsi:type ein Datentyp mit variablen Zahlen ist)Optional (available only if the xsi:type is a variable-number data type)
SCALE ="int"SCALE ="int" Gibt die Anzahl der Stellen rechts vom Dezimaltrennzeichen einer Zahl an.Indicates the number of digits to the right of the decimal point in a number. Beispielsweise verfügt die Zahl 123,45 über 2 Dezimalstellen.For example, the number 123.45 has a scale of 2.

Der Wert muss eine ganze Zahl sein.The value must be an integer.
Optional (nur verfügbar, wenn xsi:type ein Datentyp mit variablen Zahlen ist)Optional (available only if the xsi:type is a variable-number data type)
NULLABLE = { "YES"NULLABLE = { "YES"

"NO" }"NO" }
Gibt an, ob eine Spalte NULL-Werte verarbeiten kann.Indicates whether a column can assume NULL values. Dieses Attribut ist unabhängig von FIELDS.This attribute is completely independent of FIELDS. Falls die Spalte jedoch nicht NULLABLE ist und für ein Feld NULL (d. h. kein Wert) angegeben wurde, tritt ein Laufzeitfehler auf.However, if a column is not NULLABLE and field specifies NULL (by not specifying any value), a run-time error results.

Das NULLABLE-Attribut wird nur verwendet, wenn Sie eine einfache SELECT FROM OPENROWSET (BULK...)-Anweisung ausführen.The NULLABLE attribute is used only if you do a plain SELECT FROM OPENROWSET(BULK...) statement.
Optional (verfügbar für jeden beliebigen Datentyp)Optional (available for any data type)
Xsi:type-Werte des <COLUMN>-Elements Xsi:type values of the <COLUMN> Element

Der xsi:type-Wert ist ein (als Attribut verwendetes) XML-Konstrukt, das den Datentyp für eine Instanz eines Elements identifiziert.The xsi:type value is an XML construct (used like an attribute) that identifies the data type of an instance of an element. Weitere Informationen finden Sie unter "Einfügen des xsi:type-Werts in ein Dataset" weiter unten in diesem Abschnitt.For information on using the "Putting the xsi:type Value into a Data Set," later in this section.

Das <COLUMN>-Element unterstützt native SQL-Datentypen wie folgt:The <COLUMN> element supports native SQL data types, as follows:

TypkategorieType Category <COLUMN>-Datentypen<COLUMN> Data Types Erforderliche(s) XML-Attribut(e)Required XML Attribute(s)

für Datentypfor Data Type
Optionale(s) XML-Attribut(e)Optional XML Attribute(s)

für Datentypfor Data Type
FestFixed SQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANTund SQLUNIQUEIDSQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANT, and SQLUNIQUEID Keine.None. NULLABLENULLABLE
Variable ZahlVariable Number SQLDECIMAL und SQLNUMERICSQLDECIMAL and SQLNUMERIC Keine.None. NULLABLE, PRECISION, SCALENULLABLE, PRECISION, SCALE
LOBLOB SQLIMAGE, CharLOB, SQLTEXTund SQLUDTSQLIMAGE, CharLOB, SQLTEXT, and SQLUDT Keine.None. NULLABLENULLABLE
Character LOBCharacter LOB SQLNTEXTSQLNTEXT Keine.None. NULLABLENULLABLE
Binäre ZeichenfolgeBinary string SQLBINARY und SQLVARYBINSQLBINARY and SQLVARYBIN Keine.None. NULLABLE, LENGTHNULLABLE, LENGTH
ZeichenfolgeCharacter string SQLCHAR, SQLVARYCHAR, SQLNCHARund SQLNVARCHARSQLCHAR, SQLVARYCHAR, SQLNCHAR, and SQLNVARCHAR Keine.None. NULLABLE, LENGTHNULLABLE, LENGTH

Wichtig

Verwenden Sie in Ihrer Formatdatei einen der folgenden Datentypen, um einen Massenexport oder -import von SQLXML-Daten auszuführen: SQLCHAR oder SQLVARYCHAR (die Daten werden in der Clientcodepage oder in der Codepage, die durch die Sortierung impliziert wird, gesendet), SQLNCHAR oder SQLNVARCHAR (die Daten werden als Unicode gesendet) oder SQLBINARY oder SQLVARYBIN (die Daten werden ohne Konvertierung gesendet).To bulk export or import SQLXML data, use one of the following data types in your format file: SQLCHAR or SQLVARYCHAR (the data is sent in the client code page or in the code page implied by the collation), SQLNCHAR or SQLNVARCHAR (the data is sent as Unicode), or SQLBINARY or SQLVARYBIN (the data is sent without any conversion).

Weitere Informationen zu SQL ServerSQL Server -Datentypen finden Sie unter Datentypen (Transact-SQL).For more information about SQL ServerSQL Server data types, see Data Types (Transact-SQL).

Verwenden des <ROW>-Elements beim Massenimportieren How Bulk Import Uses the <ROW> Element

Das <ROW>-Element wird in bestimmten Kontexten ignoriert.The <ROW> element is ignored in some contexts. Ob sich das <ROW>-Element auf einen Massenimportvorgang auswirkt, hängt davon ab, wie der Vorgang durchgeführt wird:Whether the <ROW> element affects a bulk-import operation depends on how the operation is performed:

  • Befehl bcp the bcp command

    Wenn Daten in eine Zieltabelle geladen werden, ignoriert bcp die <ROW>-Komponente.When data is loaded into a target table, bcp ignores the <ROW> component. Stattdessen lädt bcp die Daten auf der Grundlage der Spaltentypen der Zieltabelle.Instead, bcp loads the data based on the column types of the target table.

  • Transact-SQLTransact-SQL -Anweisungen (BULK INSERT und der OPENROWSET-Massenrowsetanbieter) statements (BULK INSERT and OPENROWSET's Bulk rowset provider)

    Beim Massenimportieren von Daten in eine Tabelle verwenden Transact-SQLTransact-SQL-Anweisungen die <ROW>-Komponente, um das Eingaberowset zu generieren.When bulk importing data into a table, Transact-SQLTransact-SQL statements use the <ROW> component to generate the input rowset. Darüber hinaus führen Transact-SQLTransact-SQL-Anweisungen auf der Grundlage der unter <ROW> angegebenen Spaltentypen und der entsprechenden Spalte in der Zieltabelle die erforderlichen Typkonvertierungen durch.Also, Transact-SQLTransact-SQL statements perform appropriate type conversions based on the column types specified under <ROW> and the corresponding column in the target table. Besteht eine Nichtübereinstimmung zwischen den Spaltentypen, die in der Formatdatei und in der Zieltabelle angegeben sind, wird eine zusätzliche Typkonvertierung durchgeführt.If a mismatch exists between column types as specified in the format file and in the target table, an extra type conversion occurs. Aufgrund dieser zusätzlichen Typkonvertierung kann es zu einer Diskrepanz (d. h. einem Genauigkeitsverlust) im Verhalten von BULK INSERT bzw. des OPENROWSET-Massenrowsetanbieters verglichen mit bcpkommen.This extra type conversion may lead to some discrepancy (that is, a loss of precision) in behavior in BULK INSERT or OPENROWSET's Bulk rowset provider as compared to bcp.

    Anhand der Informationen im <ROW>-Element kann eine Zeile erstellt werden, ohne dass zusätzliche Informationen erforderlich sind.The information in the <ROW> element allows a row to be constructed without requiring any additional information. Aus diesem Grund können Sie ein Rowset mithilfe einer SELECT-Anweisung generieren (SELECT * FROM OPENROWSET(BULK datafile FORMATFILE=xmlformatfile).For this reason, you can generate a rowset using a SELECT statement (SELECT * FROM OPENROWSET(BULK datafile FORMATFILE=xmlformatfile).

    Hinweis

    Die OPENROWSET BULK-Klausel erfordert eine Formatdatei (beachten Sie, dass eine Konvertierung vom Datentyp des Felds in den Datentyp der Spalte nur mit einer XML-Formatdatei möglich ist).The OPENROWSET BULK clause requires a format file (note that converting from the data type of the field to the data type of a column is available only with an XML format file).

Verwenden des <COLUMN>-Elements beim Massenimportieren How Bulk Import Uses the <COLUMN> Element

Um einen Massenimport von Daten in eine Tabelle durchzuführen, ordnen die <COLUMN>-Elemente in einer Formatdatei den Tabellenspalten ein Datendateifeld zu, indem sie folgende Angaben machen:For bulk importing data into a table, the <COLUMN> elements in a format file map a data-file field to table columns by specifying:

  • Die Position jedes Felds innerhalb einer Zeile in der Datendatei.The position of each field within a row in the data file.

  • Der Spaltentyp, der verwendet wird, um den Felddatentyp in den gewünschten Spaltendatentyp zu konvertieren.The column type, which is used to convert the field data type to the desired column data type.

    Falls einem Feld keine Spalte zugeordnet ist, wird das Feld nicht in die generierte(n) Zeile(n) kopiert.If no column is mapped to a field, the field is not copied into the generated row(s). Dieses Verhalten ermöglicht, dass eine Datendatei Zeilen mit unterschiedlichen Spalten (in verschiedenen Tabellen) generieren kann.This behavior allows a data file to generate rows with different columns (in different tables).

    Entsprechend ordnet beim Massenexportieren von Daten aus einer Tabelle jedes <COLUMN>-Element in der Formatdatei die Spalte aus der Eingabetabellenzeile dem entsprechenden Feld in der Ausgabedatendatei zu.Similarly, for bulk exporting data from a table, each <COLUMN> in the format file maps the column from the input table row to its corresponding field in the output data file.

Einfügen des xsi:type-Werts in ein Dataset Putting the xsi:type Value into a Data Set

Wird ein XML-Dokument durch die XSD-Sprache (XML Schema Definition) überprüft, wird der xsi:type-Wert nicht in das Dataset eingefügt.When an XML document is validated through the XML Schema Definition (XSD) language, the xsi:type value is not put into the data set. Sie können die xsi:type-Informationen jedoch in das Dataset einfügen, indem Sie die XML-Formatdatei in ein XML-Dokument laden (z. B. myDoc), wie durch den folgenden Codeausschnitt veranschaulicht:However, you can put the xsi:type information into the data set by loading the XML format file into an XML document (for example, myDoc), as illustrated in the following code snippet:

...;  
myDoc.LoadXml(xmlFormat);  
XmlNodeList ColumnList = myDoc.GetElementsByTagName("COLUMN");  
for(int i=0;i<ColumnList.Count;i++)  
{  
   Console.Write("COLUMN: xsi:type=" +ColumnList[i].Attributes["type",  
      "http://www.w3.org/2001/XMLSchema-instance"].Value+"\n");  
}  

Beispiele für XML-Formatdateien Sample XML Format Files

Dieser Abschnitt enthält Informationen zum Verwenden von XML-Formatdateien in verschiedenen Situationen, u. a. ein Adventure WorksAdventure Works -Beispiel.This section contains information on using XML format files in a variety of cases, including an Adventure WorksAdventure Works example.

Hinweis

In den Datendateien, die in den folgenden Beispielen gezeigt werden, steht <tab> für ein Tabstoppzeichen in einer Datendatei, und <return> steht für einen Wagenrücklauf.In the data files shown in the following examples, <tab> indicates a tab character in a data file, and <return> indicates a carriage return.

Die Beispiele veranschaulichen die Hauptaspekte bei der Verwendung von XML-Formatdateien:The examples illustrate key aspects of using XML format files, as follows:

Hinweis

Informationen zum Erstellen einer Formatdatei finden Sie unter Erstellen einer Formatdatei (SQL Server).For information about how to create format files, see Create a Format File (SQL Server).

A. A. Gleiches Anordnen von Zeichendatenfeldern und TabellenspaltenOrdering character-data fields the same as table columns

Das folgende Beispiel zeigt eine XML-Formatdatei, die eine Datendatei beschreibt, in der drei Felder mit Zeichendaten enthalten sind.The following example shows an XML format file that describes a data file containing three fields of character data. Die Formatdatei ordnet die Datendatei einer Tabelle zu, die drei Spalten enthält.The format file maps the data file to a table that contains three columns. Die Datenfelder entsprechen den Spalten der Tabelle eins zu eins.The data fields correspond one-to-one with the columns of the table.

Tabelle (Zeile): Person (Age int, FirstName Varchar(20), LastName Varchar(30))Table (row): Person (Age int, FirstName varchar(20), LastName varchar(30))

Datendatei (Datensatz): Age<tab>Firstname<tab>Lastname<return>Data file (record): Age<tab>Firstname<tab>Lastname<return>

Die folgende XML-Formatdatei liest aus der Datendatei in die Tabelle.The following XML format file reads from the data file to the table.

Im <RECORD> -Element stellt die Formatdatei die Datenwerte in allen drei Feldern als Zeichendaten dar.In the <RECORD> element, the format file represents the data values in all three fields as character data. Für jedes Feld gibt das TERMINATOR -Attribut das Abschlusszeichen an, das dem Datenwert folgt.For each field, the TERMINATOR attribute indicates the terminator that follows the data value.

Die Datenfelder entsprechen den Spalten der Tabelle eins zu eins.The data fields correspond one-to-one with the columns of the table. Im <ROW> -Element ordnet die Formatdatei die Age -Spalte dem ersten Feld, die FirstName -Spalte dem zweiten Feld und die LastName -Spalte dem dritten Feld zu.In the <ROW> element, the format file maps the column Age to the first field, the column FirstName to the second field, and the column LastName to the third field.

<?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="\t"   
      MAX_LENGTH="12"/>   
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"   
      MAX_LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"   
      MAX_LENGTH="30"   
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  </RECORD>  
  <ROW>  
    <COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>  
    <COLUMN SOURCE="2" NAME="firstname" xsi:type="SQLVARYCHAR"/>  
    <COLUMN SOURCE="3" NAME="lastname" xsi:type="SQLVARYCHAR"/>  
  </ROW>  
</BCPFORMAT>  

Hinweis

Ein entsprechendes AdventureWorks2012AdventureWorks2012 Beispiel finden Sie unter Erstellen einer Formatdatei (SQL Server).For an equivalent AdventureWorks2012AdventureWorks2012 example, see Create a Format File (SQL Server).

B. B. Unterschiedliches Anordnen von Datenfeldern und TabellenspaltenOrdering data fields and table columns differently

Das folgende Beispiel zeigt eine XML-Formatdatei, die eine Datendatei beschreibt, in der drei Felder mit Zeichendaten enthalten sind.The following example shows an XML format file that describes a data file containing three fields of character data. Die Formatdatei ordnet die Datendatei einer Tabelle zu, die drei Spalten enthält, die anders angeordnet sind als die Felder der Datendatei.The format file maps the data file to a table that contains three columns that are ordered differently from the fields of the data file.

Tabelle (Zeile): Person (Age int, FirstName Varchar(20), LastName Varchar(30))Table (row): Person (Age int, FirstName varchar(20), LastName varchar(30))

Datendatei (Datensatz): Age<tab>Lastname<tab>Firstname<return>Data file (record): Age<tab>Lastname<tab>Firstname<return>

Im <RECORD> -Element stellt die Formatdatei die Datenwerte in allen drei Feldern als Zeichendaten dar.In the <RECORD> element, the format file represents the data values in all three fields as character data.

Im <ROW> -Element ordnet die Formatdatei die Age -Spalte dem ersten Feld, die FirstName -Spalte dem dritten Feld und die LastName -Spalte dem zweiten Feld zu.In the <ROW> element, the format file maps the column Age to the first field, the column FirstName to the third field, and the column LastName to the second field.

<?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="\t"   
      MAX_LENGTH="12"/>  
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="20"   
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"   
      MAX_LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  </RECORD>  
  <ROW>  
    <COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>  
    <COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>  
    <COLUMN SOURCE="2" NAME="lastname" xsi:type="SQLVARYCHAR"/>  
  </ROW>  
</BCPFORMAT>  

Hinweis

Ein entsprechendes AdventureWorks2012AdventureWorks2012 Beispiel finden Sie unter Verwenden einer Formatdatei zum Zuordnen von Tabellenspalten zu Datendateifeldern (SQL Server).For an equivalent AdventureWorks2012AdventureWorks2012 example, see Use a Format File to Map Table Columns to Data-File Fields (SQL Server).

C. C. Auslassen eines DatenfeldsOmitting a data field

Das folgende Beispiel zeigt eine XML-Formatdatei, die eine Datendatei beschreibt, in der vier Felder mit Zeichendaten enthalten sind.The following example shows an XML format file that describes a data file containing four fields of character data. Die Formatdatei ordnet die Datendatei einer Tabelle zu, die drei Spalten enthält.The format file maps the data file to a table that contains three columns. Das zweite Datenfeld entspricht keiner Tabellenspalte.The second data field does not correspond to any table column.

Tabelle (Zeile): Person (Age int, FirstName Varchar(20), LastName Varchar(30))Table (row): Person (Age int, FirstName Varchar(20), LastName Varchar(30))

Datendatei (Datensatz): Age<tab>employeeID<tab>Firstname<tab>Lastname<return>Data file (record): Age<tab>employeeID<tab>Firstname<tab>Lastname<return>

Im <RECORD> -Element stellt die Formatdatei die Datenwerte in allen vier Feldern als Zeichendaten dar.In the <RECORD> element, the format file represents the data values in all four fields as character data. Für jedes Feld gibt das TERMINATOR-Attribut das Abschlusszeichen an, das dem Datenwert folgt.For each field, the TERMINATOR attribute indicates the terminator that follows the data value.

Im <ROW> -Element ordnet die Formatdatei die Age -Spalte dem ersten Feld, die FirstName -Spalte dem dritten Feld und die LastName -Spalte dem vierten Feld zu.In the <ROW> element, the format file maps the column Age to the first field, the column FirstName to the third field, and the column LastName to the fourth field.

<?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="\t"   
      MAX_LENGTH="12"/>  
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"   
      MAX_LENGTH="10"   
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t"   
      MAX_LENGTH="20"   
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
    <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n"   
      MAX_LENGTH="30"   
      COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  </RECORD>  
  <ROW>  
    <COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>  
    <COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>  
    <COLUMN SOURCE="4" NAME="lastname" xsi:type="SQLVARYCHAR"/>  
  </ROW>  
</BCPFORMAT>  

Hinweis

Ein entsprechendes AdventureWorks2012AdventureWorks2012 Beispiel finden Sie unter Auslassen eines Datenfelds mithilfe einer Formatdatei (SQL Server).For an equivalent AdventureWorks2012AdventureWorks2012 example, see Use a Format File to Skip a Data Field (SQL Server).

D. D. Zuordnen von <FIELD> xsi:type zu <COLUMN> xsi:typeMapping <FIELD> xsi:type to <COLUMN> xsi:type

Das folgende Beispiel zeigt verschiedene Typen von Feldern und ihre Zuordnungen zu Spalten.The following example shows different types of fields and their mappings to columns.

<?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 xsi:type="CharTerm" ID="C1" TERMINATOR="\t"   
            MAX_LENGTH="4"/>  
      <FIELD xsi:type="CharFixed" ID="C2" LENGTH="10"   
         COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>  
      <FIELD xsi:type="CharPrefix" ID="C3" PREFIX_LENGTH="2"   
         MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>  
      <FIELD xsi:type="NCharTerm" ID="C4" TERMINATOR="\t"   
         MAX_LENGTH="4"/>  
      <FIELD xsi:type="NCharFixed" ID="C5" LENGTH="10"   
         COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>  
      <FIELD xsi:type="NCharPrefix" ID="C6" PREFIX_LENGTH="2"   
         MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>  
      <FIELD xsi:type="NativeFixed" ID="C7" LENGTH="4"/>  
   </RECORD>  
   <ROW>  
      <COLUMN SOURCE="C1" NAME="Age" xsi:type="SQLTINYINT"/>  
      <COLUMN SOURCE="C2" NAME="FirstName" xsi:type="SQLVARYCHAR"   
      LENGTH="16" NULLABLE="NO"/>  
      <COLUMN SOURCE="C3" NAME="LastName" />  
      <COLUMN SOURCE="C4" NAME="Salary" xsi:type="SQLMONEY"/>  
      <COLUMN SOURCE="C5" NAME="Picture" xsi:type="SQLIMAGE"/>  
      <COLUMN SOURCE="C6" NAME="Bio" xsi:type="SQLTEXT"/>  
      <COLUMN SOURCE="C7" NAME="Interest"xsi:type="SQLDECIMAL"   
      PRECISION="5" SCALE="3"/>  
   </ROW>  
</BCPFORMAT>  

E. E. Zuordnen von XML-Daten zu einer TabelleMapping XML data to a table

Im folgenden Beispiel wird eine leere zweispaltige Tabelle (t_xml) erstellt, in der die erste Spalte dem int -Datentyp und die zweite Spalte dem xml -Datentyp zugeordnet ist.The following example creates an empty two-column table (t_xml), in which the first column maps to the int data type and the second column maps to the xml data type.

CREATE TABLE t_xml (c1 int, c2 xml)  

Die folgende XML-Formatdatei lädt eine Datendatei in die t_xml-Tabelle.The following XML format file would load a data file into table t_xml.

<?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" PREFIX_LENGTH="1"/>  
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="8"/>  
 </RECORD>  
 <ROW>  
  <COLUMN SOURCE="1" NAME="c1" xsi:type="SQLINT"/>  
  <COLUMN SOURCE="2" NAME="c2" xsi:type="SQLNCHAR"/>  
 </ROW>  
</BCPFORMAT>  

F. F. Importieren von Feldern mit fester Länge oder fester BreiteImporting fixed-length or fixed-width fields

Im folgenden Beispiel werden Felder mit einer festen Länge bzw. Breite von jeweils 10 und 6 Zeichen beschrieben.The following example describes fixed fields of 10 or 6 characters each. Die Formatdatei stellt diese Feldlängen bzw. -breiten als LENGTH="10" und LENGTH="6"dar.The format file represents these field lengths/widths as LENGTH="10" and LENGTH="6", respectively. Jede Zeile der Datendatei endet mit einer Kombination von Wagenrücklauf/Zeilenvorschub, {CR}{LF}, was in der Formatdatei als TERMINATOR="\r\n"dargestellt wird.Every row of the data files ends with a carriage return-line feed combination, {CR}{LF}, which the format file represents as TERMINATOR="\r\n".

<?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="CharFixed" LENGTH="10"/>  
    <FIELD ID="2" xsi:type="CharFixed" LENGTH="6"/>  
    <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"  
  </RECORD>  
  <ROW>  
    <COLUMN SOURCE="1" NAME="C1" xsi:type="SQLINT" />  
    <COLUMN SOURCE="2" NAME="C2" xsi:type="SQLINT" />  
  </ROW>  
</BCPFORMAT>  

Zusätzliche Beispiele Additional Examples

Die folgenden Themen enthalten weitere Beispiele sowohl für Nicht-XML-Dateien als auch für XML-Formatdateien:For additional examples of both non-XML format files and XML format files, see the following topics:

Keine.None.

Siehe auchSee Also

Massenimport und -export von Daten (SQL Server) Bulk Import and Export of Data (SQL Server)
Datentypen (Transact-SQL) Data Types (Transact-SQL)
Nicht-XML-Formatdateien (SQL Server) Non-XML Format Files (SQL Server)
Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)Format Files for Importing or Exporting Data (SQL Server)