Nicht-XML-Formatdateien (SQL Server)

Gilt für:yesSQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

In SQL Server werden zwei Formattypen zum Massenexport und Importieren unterstützt: Nicht-XML-Formatdateien und XML-Formatdateien.

In diesem Thema:

Vorteile von Nicht-XML-Formatdateien

  • Sie können eine Nicht-XML-Formatdatei automatisch erstellen, indem Sie die format -Option in einem bcp -Befehl angeben.

  • 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.

  • Sie können eine Formatdatei für einen bestimmten Datentyp z. B. Zeichendaten oder systemeigene Daten erstellen.

  • Sie können Nicht-XML-Formatdateien erstellen, die interaktiv angegebene Attribute für jedes Datenfeld enthalten. Weitere Informationen finden Sie unter Angeben von Datenformaten zur Kompatibilität bei Verwendung von bcp (SQL Server).

Hinweis

XML-Formatdateien bieten verschiedene Vorteile gegenüber Nicht-XML-Formatdateien. Weitere Informationen finden Sie unter XML-Formatdateien (SQL Server).

Struktur von Nicht-XML-Formatdateien

Bei einer Nicht-XML-Formatdatei handelt es sich um eine Textdatei mit einer speziellen Struktur. Die Nicht-XML-Formatdatei enthält Informationen zu Dateispeichertyp, Präfixlänge, Feldlänge und Feldabschlusszeichen jeder Tabellenspalte.

In der folgenden Abbildung werden die Felder der Formatdatei in einem Beispiel einer Nicht-XML-Formatdatei gezeigt.

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

Die Felder Version und Anzahl der Spalten kommen nur einmal vor. Die Bedeutung dieser Felder wird in der folgenden Tabelle beschrieben.

Feld in der Formatdatei BESCHREIBUNG
Version Versionsnummer des Hilfsprogramms bcp :

9,0 = SQL Server 2005 (9,x)

10.0 = SQL Server 2008

11.0 = SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)

Die Versionsnummer wird nur von bcp erkannt, nicht von Transact-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. Beispielsweise kann SQL Server 2012 (11.x)bcp eine Version 10.0-Formatdatei lesen, die von SQL Server 2008bcp generiert wird, aber SQL Server 2008bcp keine Version 12.0-Formatdatei lesen kann, die von SQL Server 2014 (12.x)bcp generiert wird.
Anzahl von Spalten Anzahl der Felder in der Datendatei. Diese Anzahl muss für alle Zeilen identisch sein.

Die anderen Felder der Formatdatei beschreiben die Datenfelder, die massenimportiert bzw. exportiert werden sollen. Jedes Datenfeld nimmt eine eigene Zeile in der Formatdatei ein. Jede Zeile der Formatdatei enthält Werte für die Felder der Formatdatei. Diese Felder werden in der folgenden Tabelle beschrieben.

Feld in der Formatdatei BESCHREIBUNG
Reihenfolge der Felder der Hostdatei Eine Zahl, die die Position jedes Felds in der Datendatei angibt. Das erste Feld in der Zeile ist 1 usw.
Datentyp in der Hostdatei Gibt den Datentyp an, der in einem bestimmten Feld der Datendatei gespeichert wird. Bei ASCII-Datendateien verwenden Sie SQLCHAR, bei Datendateien im systemeigenen Format verwenden Sie Standarddatentypen. Weitere Informationen finden Sie unter Angeben des Dateispeichertyps mithilfe von bcp (SQL Server).
Präfixlänge Anzahl der Längenpräfixzeichen für dieses Feld. Die gültigen Präfixlängen sind 0, 1, 4 und 8. Um das Längenpräfix nicht angeben zu müssen, legen Sie die Länge auf 0 fest. Ein Längenpräfix muss angegeben werden, wenn das Feld NULL-Datenwerte enthält. Weitere Informationen finden Sie unter Angeben der Präfixlänge in Datendateien mithilfe von bcp (SQL Server).
Datenlänge in der Hostdatei Maximale Länge (in Byte) des Datentyps, der in diesem Feld der Datendatei gespeichert ist.

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

Weitere Informationen finden Sie unter Angeben der Feldlänge mithilfe von bcp (SQL Server).
Abschlusszeichen Trennzeichen, um die Felder in der Datendatei voneinander zu trennen. Häufig verwendete Trennzeichen sind Komma (,), Tabstopp (\t) und Zeilenende (\r\n). Weitere Informationen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen (SQL Server).
Reihenfolge der Serverspalten Reihenfolge, in der Spalten in der SQL Server Tabelle angezeigt werden. Wenn beispielsweise das vierte Feld in der Datendatei der sechsten Spalte in einer SQL Server Tabelle zugeordnet ist, lautet die Serverspaltenreihenfolge für das vierte Feld 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.
Name der Serverspalte Name der Spalte, die aus der SQL Server Tabelle kopiert wurde. Der tatsächliche Name des Felds muss nicht unbedingt verwendet werden, aber das Feld in der Formatdatei darf nicht leer sein.
Spaltensortierung Die Sortierung zum Speichern von Zeichendaten und Unicode-Daten in der Datendatei.

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. Weitere Informationen finden Sie weiter unten in diesem Thema unter Verwandte Aufgaben .

Beispiel für eine Nicht-XML-Formatdatei

Das folgende Beispiel zeigt eine zuvor erstellte Nicht-XML-Formatdatei (myDepartmentIdentical-f-c.fmt). Diese Datei beschreibt ein Zeichendatenfeld für jede Spalte in der HumanResources.Department -Tabelle der AdventureWorks2012 -Beispieldatenbank.

Die generierte Formatdatei myDepartmentIdentical-f-c.fmtenthält die folgenden Informationen:

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.

Related Tasks

Weitere Informationen

bcp (Hilfsprogramm)
Erstellen einer Formatdatei (SQL Server)
XML-Formatdateien (SQL Server)
Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)