Erstellen einer Formatdatei (SQL Server)

Beim Massenimportieren bzw. -exportieren von Daten in eine bzw. aus einer SQL Server-Tabelle können Sie eine Formatdatei für ein flexibles System für das Schreiben von Datendateien verwenden, bei denen nur geringfügige oder keine Bearbeitung erforderlich ist, um sie mit anderen Datenformaten oder für das Lesen von Datendateien aus anderen Softwareprogrammen kompatibel zu machen.

SQL Server unterstützt zwei Typen von Formatdateien: Nicht-XML- und XML-Formatdateien. Nicht-XML ist das ursprüngliche Format, das von früheren Versionen von SQL Server unterstützt wird.

Im Allgemeinen sind XML-Formatdateien und Nicht-XML-Formatdateien austauschbar. Es empfiehlt sich jedoch, für neue Formatdateien die XML-Syntax zu verwenden, weil sich im Vergleich zu Nicht-XML-Formatdateien mehrere Vorteile ergeben.

HinweisHinweis

Die zum Lesen der Formatdatei verwendete Version des Hilfsprogramms 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 2008 bcp liest z. B. Formatdateien der Version 9.0, die von SQL Server 2005 bcp generiert wurden, aber SQL Server 2005 bcp liest keine Formatdateien der Version 10.0, die von SQL Server 2008 bcp generiert wurden.

In diesem Thema wird die Verwendung des Hilfsprogramms bcp zum Erstellen einer Formatdatei für eine bestimmte Tabelle erläutert. Die Formatdatei basiert auf der angegebenen Datentypoption (-n, -c, -w oder -N) sowie auf den Tabellen- bzw. Sichttrennzeichen.

Erstellen einer Nicht-XML-Formatdatei

Geben Sie bei der Ausführung eines bcp-Befehls zum Erstellen einer Formatdatei das format-Argument an, und verwenden Sie nul anstatt eines Datendateipfads. Die format-Option erfordert außerdem die -f-Option, z. B.:

bcp table_or_view format nul -f format_file_name

HinweisHinweis

Um Nicht-XML-Formatdateien klar zu kennzeichnen, empfiehlt es sich, als Dateierweiterung FMT zu verwenden, beispielsweise "MeineTabelle.fmt".

Informationen zur Struktur und zu den Feldern von Nicht-XML-Formatdateien finden Sie unter Nicht-XML-Formatdateien (SQL Server).

Beispiele

Dieser Abschnitt enthält die folgenden Beispiele, die die Verwendung der bcp-Befehle zum Erstellen von Nicht-XML-Formatdateien erläutern.

  • A. Erstellen einer Nicht-XML-Formatdatei für systemeigene Daten

  • B. Erstellen einer Nicht-XML-Formatdatei für Zeichendaten

  • C. Erstellen einer Nicht-XML-Formatdatei für systemeigene Unicode-Daten

  • D. Erstellen einer Nicht-XML-Formatdatei für Unicode-Zeichendaten

In diesen Beispielen wird die HumanResources.Department-Tabelle der AdventureWorks2012 -Beispieldatenbank verwendet. Die HumanResources.Department-Tabelle enthält vier Spalten: DepartmentID, Name, GroupName und ModifiedDate.

HinweisHinweis

Adventure Works Cycles ist eine fiktive Produktionsfirma, die zur Veranschaulichung von Datenbankkonzepten und -szenarien verwendet wird.

A.Erstellen einer Nicht-XML-Formatdatei für systemeigene Daten

In diesem Beispiel wird eine XML-Formatdatei, Department-n.xml, für die HumanResources.Department-Tabelle der AdventureWorks2012-Datenbank erstellt. Die Formatdatei verwendet systemeigene Datentypen. Der Inhalt der generierten Formatdatei wird nach dem Befehl angezeigt.

Der Befehl bcp enthält die folgenden Qualifizierer.

Qualifizierer

Beschreibung

format nul -f format_file

Gibt die Nicht-XML-Formatdatei an.

-n

Gibt systemeigene Datentypen an.

-T

Gibt an, dass das Hilfsprogramm bcp die Verbindung mit SQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt. Wenn -T nicht angegeben wird, müssen Sie für eine erfolgreiche Anmeldung -U und -P angeben.

Geben Sie an der Windows-Eingabeaufforderung den folgenden bcp-Befehl ein:

bcp AdventureWorks2012.HumanResources.Department format nul -T -n -f Department-n.fmt

Die generierte Formatdatei Department-n.fmt enthält die folgenden Informationen:

9.0
4
1       SQLSMALLINT   0       2       ""   1     DepartmentID                 ""
2       SQLNCHAR      2       100     ""   2     Name                         SQL_Latin1_General_CP1_CI_AS
3       SQLNCHAR      2       100     ""   3     GroupName                    SQL_Latin1_General_CP1_CI_AS
4       SQLDATETIME   0       8       ""   4     ModifiedDate                 ""

Weitere Informationen finden Sie unter Nicht-XML-Formatdateien (SQL Server).

B.Erstellen einer Nicht-XML-Formatdatei für Zeichendaten

In diesem Beispiel wird eine XML-Formatdatei, Department.fmt, für die HumanResources.Department-Tabelle der ssSampleDBnormal-Datenbank erstellt. Die Formatdatei verwendet Zeichendatenformate und ein nicht standardmäßiges Feldabschlusszeichen (,). Der Inhalt der generierten Formatdatei wird nach dem Befehl angezeigt.

Der Befehl bcp enthält die folgenden Qualifizierer.

Qualifizierer

Beschreibung

format nul -f format_file

Gibt eine Nicht-XML-Formatdatei an.

-c

Gibt Zeichendaten an.

-T

Gibt an, dass das Hilfsprogramm bcp die Verbindung mit SQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt. Wenn -T nicht angegeben wird, müssen Sie für eine erfolgreiche Anmeldung -U und -P angeben.

Geben Sie an der Windows-Eingabeaufforderung den folgenden bcp-Befehl ein:

bcp AdventureWorks2012.HumanResources.Department format nul -c -f Department-c.fmt -T

Die generierte Formatdatei Department-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                 ""

Weitere Informationen finden Sie unter Nicht-XML-Formatdateien (SQL Server).

C.Erstellen einer Nicht-XML-Formatdatei für systemeigene Unicode-Daten

Verwenden Sie zum Erstellen einer Nicht-XML-Formatdatei für systemeigene Unicode-Daten für die HumanResources.Department-Tabelle den folgenden Befehl:

bcp AdventureWorks2012.HumanResources.Department format nul -T -N -f Department-n.fmt

Weitere Informationen zum Verwenden von Unicode-systemeigenen Daten finden Sie unter Verwenden des systemeigenen Unicode-Formats zum Importieren oder Exportieren von Daten (SQL Server).

D.Erstellen einer Nicht-XML-Formatdatei für Unicode-Zeichendaten

Verwenden Sie zum Erstellen einer Nicht-XML-Formatdatei für Unicode-Zeichendaten für die HumanResources.Department-Tabelle den folgenden Befehl:

bcp AdventureWorks2012.HumanResources.Department format nul -T -w -f Department-w.fmt

Weitere Informationen zum Verwenden von Unicode-Zeichendaten finden Sie unter Verwenden des Unicode-Zeichenformats zum Importieren und Exportieren von Daten (SQL Server).

Erstellen einer XML-Formatdatei

Geben Sie bei der Ausführung eines bcp-Befehls zum Erstellen einer Formatdatei das format-Argument an, und verwenden Sie nul anstatt eines Datendateipfads. Für die Option format ist immer auch die Option -f erforderlich. Zum Erstellen einer XML-Formatdatei muss zudem die Option -x angegeben werden, wie im Folgenden dargestellt:

bcp table_or_view format nul -f format_file_name -x

HinweisHinweis

Um eine XML-Formatdatei klar zu kennzeichnen, empfiehlt es sich, die Dateierweiterung XML zu verwenden, beispielsweise "MeineTabelle.xml".

Informationen zur Struktur und zu den Feldern von XML-Formatdateien finden Sie unter XML-Formatdateien (SQL Server).

Beispiele

Dieser Abschnitt enthält die folgenden Beispiele, die die Verwendung der bcp-Befehle zum Erstellen von XML-Formatdateien erläutern.

  • A. Erstellen einer XML-Formatdatei für Zeichendaten

  • B. Erstellen einer XML-Formatdatei für systemeigene Daten

In diesen Beispielen wird die HumanResources.Department-Tabelle der AdventureWorks2012 -Beispieldatenbank verwendet. Die HumanResources.Department-Tabelle enthält vier Spalten: DepartmentID, Name, GroupName und ModifiedDate.

HinweisHinweis

Adventure Works Cycles ist eine fiktive Produktionsfirma, die zur Veranschaulichung von Datenbankkonzepten und -szenarien verwendet wird.

A.Erstellen einer XML-Formatdatei für Zeichendaten

In diesem Beispiel wird die XML-Formatdatei Department.xml für die HumanResources.Department-Tabelle der AdventureWorks2012-Datenbank erstellt. Die Formatdatei verwendet Zeichendatenformate und ein nicht standardmäßiges Feldabschlusszeichen (,). Der Inhalt der generierten Formatdatei wird nach dem Befehl angezeigt.

Der Befehl bcp enthält die folgenden Qualifizierer.

Qualifizierer

Beschreibung

format nul -f format_file -x

Gibt die XML-Formatdatei an.

-c

Gibt Zeichendaten an.

-t ,

Gibt ein Komma (,) als Feldabschlusszeichen an.

HinweisHinweis

Wenn von der Datendatei das standardmäßige Feldabschlusszeichen (\t) verwendet wird, ist der -t-Schalter nicht erforderlich.

-T

Gibt an, dass das Hilfsprogramm bcp die Verbindung mit SQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt. Wenn -T nicht angegeben wird, müssen Sie für eine erfolgreiche Anmeldung -U und -P angeben.

Geben Sie an der Windows-Eingabeaufforderung den folgenden bcp-Befehl ein:

bcp AdventureWorks2012.HumanResources.Department format nul -c -x -f Department-c..xml –t, -T

Die generierte Formatdatei, Department-c.xml, enthält die folgenden XML-Elemente:

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
 </ROW>
</BCPFORMAT>

Informationen zur Syntax dieser Formatdatei finden Sie unter XML-Formatdateien (SQL Server). Informationen zu Zeichendaten finden Sie unter Verwenden des Zeichenformats zum Importieren und Exportieren von Daten (SQL Server).

B.Erstellen einer XML-Formatdatei für systemeigene Daten

In diesem Beispiel wird eine XML-Formatdatei, Department-n.xml, für die HumanResources.Department-Tabelle erstellt. Die Formatdatei verwendet systemeigene Datentypen. Der Inhalt der generierten Formatdatei wird nach dem Befehl angezeigt.

Der Befehl bcp enthält die folgenden Qualifizierer.

Qualifizierer

Beschreibung

format nul -f format_file -x

Gibt die XML-Formatdatei an.

-n

Gibt systemeigene Datentypen an.

-T

Gibt an, dass das Hilfsprogramm bcp die Verbindung mit SQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt. Wenn -T nicht angegeben wird, müssen Sie für eine erfolgreiche Anmeldung -U und -P angeben.

Geben Sie an der Windows-Eingabeaufforderung den folgenden bcp-Befehl ein:

bcp AdventureWorks2012.HumanResources.Department format nul -x -f Department-n..xml -n -T

Die generierte Formatdatei, Department-n.xml, enthält die folgenden XML-Elemente:

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="NativeFixed" LENGTH="2"/>
  <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="NativeFixed" LENGTH="8"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
 </ROW>
</BCPFORMAT>

Informationen zur Syntax dieser Formatdatei finden Sie unter XML-Formatdateien (SQL Server). Informationen zum Verwenden von systemeigenen Daten finden Sie unter Verwenden des systemeigenen Formats zum Importieren oder Exportieren von Daten (SQL Server).

Zuordnen von Datenfeldern zu Tabellenspalten

Eine mit bcp erstellte Formatdatei beschreibt alle Tabellenspalten in der in bcp angegebenen Reihenfolge. Sie können die Formatdatei ändern, um Tabellenzeilen neu anzuordnen oder auszulassen. Auf diese Weise können Sie Formatdateien an Datendateien anpassen, deren Felder nicht direkt Tabellenspalten zugeordnet werden können. Weitere Informationen finden Sie in den folgenden Themen:

Siehe auch

Verweis

bcp (Hilfsprogramm)

Konzepte

Verwenden einer Formatdatei zum Zuordnen von Tabellenspalten zu Datendateifeldern (SQL Server)

Überspringen einer Tabellenspalte mithilfe einer Formatdatei (SQL Server)

Auslassen eines Datenfelds mithilfe einer Formatdatei (SQL Server)

Nicht-XML-Formatdateien (SQL Server)

XML-Formatdateien (SQL Server)