Grundlegendes zu Nicht-XML-Formatdateien

In Microsoft SQL Server 2000 und früheren Versionen wird der Massenimport und -export mit einem einzigen Formatdateityp ausgeführt. Dies wird auch in Microsoft SQL Server 2005 unterstützt. Als Alternative unterstützt SQL Server 2005 jedoch auch XML-Formatdateien. Zum Unterscheiden werden Formatdateien vom ursprünglichen Typ als Nicht-XML-Formatdateien bezeichnet.

ms191479.note(de-de,SQL.90).gifHinweis:
XML-Formatdateien bieten verschiedene Vorteile. Weitere Informationen finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten.

Normalerweise werden Formatdateien für ein bestimmtes Datenformat mithilfe des Befehls bcp mit einer der folgenden Methoden erstellt:

  • Sie können beide Formatdateitypen für Zeichendaten und systemeigene Daten erstellen, indem Sie die Option format in bcp angeben. Weitere Informationen finden Sie unter Erstellen einer Formatdatei.
  • Sie können Nicht-XML-Formatdateien erstellen, die interaktiv angegebene Attribute für jedes Datenfeld enthalten. Weitere Informationen finden Sie unter Angeben von Datenformaten für die Kompatibilität mithilfe von bcp.
    ms191479.note(de-de,SQL.90).gifHinweis:
    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.

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 Number of columns kommen nur einmal vor. Die Bedeutung dieser Felder wird in der folgenden Tabelle beschrieben.

Feld in der Formatdatei

Beschreibung

Version

Versionsnummer des Dienstprogramms bcp:

6.5 = SQL Server Version 6.5

7.0 = SQL Server Version 7.0

8.0 = SQL Server 2000

9.0 = SQL Server 2005

Die Versionsnummer wird nur von bcp erkannt, nicht von Transact-SQL.

ms191479.note(de-de,SQL.90).gifHinweis:

Die zum Lesen der Formatdatei verwendete Version des Dienstprogramms bcp (Bcp.exe) muss mit der Version, mit der die Formatdatei erstellt wurde, identisch sein, oder es muss eine höhere Version sein. SQL Server 2005 bcp liest z. B. Formatdateien der Version 8.0, die von SQL Server 2000 bcp generiert wurden, aber SQL Server 2000 bcp liest keine Formatdateien der Version 9.0, die von SQL Server 2005 bcp generiert wurden.

Anzahl der 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 Feldes 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.

Präfixlänge

Anzahl der Längenpräfixzeichen für dieses Feld. Gültige Präfixlängen sind 0, 1, 2, 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.

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

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.

Reihenfolge der Serverspalten

Die Reihenfolge, in der die 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 wird, wird das vierte Feld in der Serverspalte 6 eingefügt.

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

Der Name der aus der SQL Server-Tabelle kopierten Spalte. Der tatsächliche Name des Feldes 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.

ms191479.note(de-de,SQL.90).gifHinweis:
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 unter Verwenden einer Formatdatei zum Zuordnen von Feldern zu Spalten während des Massenimports.

Beispiele

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

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

9.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     ""
ms191479.note(de-de,SQL.90).gifHinweis:
Eine Abbildung der Felder der Formatdatei in Bezug auf diese Nicht-XML-Formatdatei finden Sie unter "Struktur von Nicht-XML-Formatdateien" weiter oben in diesem Thema.

Siehe auch

Konzepte

Erstellen einer Formatdatei
Grundlegendes zu XML-Formatdateien
Arbeiten mit Formatdateien

Andere Ressourcen

bcp (Dienstprogramm)

Hilfe und Informationen

Informationsquellen für SQL Server 2005