Erstellen einer Formatdatei

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

SQL Server 2005 und höhere Versionen unterstützen 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 sie im Vergleich zu Nicht-XML-Formatdateien mehrere Vorteile bieten. Weitere Informationen finden Sie unter Einführung in Formatdateien.

HinweisHinweis

In SQL Server 2008 R2 lautet die Versionsnummer des bcp-Hilfsprogramms (Bcp.exe) 10.50, die den neuen Formatdateien zugewiesene Versionsnummer ist jedoch 10.0 wie in SQL Server 2008. Die zum Lesen der Formatdatei verwendete Version des bcp-Hilfsprogramms (Bcp.exe) muss der Version der Formatdatei oder einer höheren Version entsprechen. SQL Server 2008bcp liest z. B. Formatdateien der Version 9.0, die von SQL Server 2005bcp generiert wurden, aber SQL Server 2005bcp liest keine Formatdateien der Version 10.0, die von SQL Server 2008 oder SQL Server 2008 R2bcp 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, or -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 Datendateipfades. Die format-Option erfordert außerdem die -f-Option, wie folgt:

bcptable_or_viewformat nul -fformat_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 Grundlegendes zu Nicht-XML-Formatdateien.

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 Unicode-systemeigene Daten

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

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

HinweisHinweis

Adventure Works Cycles ist eine zum Demonstrieren von Datenbankkonzepten und -szenarien erfundene Produktionsfirma. 

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

Im folgenden Beispiel wird die XML-Formatdatei Department-n.xml für die HumanResources.Department-Tabelle der AdventureWorks2008R2-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

formatnul-fformat_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 AdventureWorks2008R2.HumanResources.Department format nul -T -n -f Department-n.fmt

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

10.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 Grundlegendes zu Nicht-XML-Formatdateien.

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

Im folgenden Beispiel wird die XML-Formatdatei Department.fmt für die HumanResources.Department-Tabelle der AdventureWorks2008R2-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

formatnul-fformat_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 AdventureWorks2008R2.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 Grundlegendes zu Nicht-XML-Formatdateien.

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

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

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

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

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

bcptable_or_viewformat nul-fformat_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 Grundlegendes zu XML-Formatdateien. Syntaxinformationen finden Sie unter Schemasyntax für XML-Formatdateien. Beispiele finden Sie unter Beispiele für XML-Formatdateien.

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 AdventureWorks2008R2-Beispieldatenbank verwendet. Die HumanResources.Department-Tabelle enthält vier Spalten: DepartmentID, Name, GroupName und ModifiedDate.

HinweisHinweis

Adventure Works Cycles ist eine zum Demonstrieren von Datenbankkonzepten und -szenarien erfundene Produktionsfirma. 

A. Erstellen einer XML-Formatdatei für Zeichendaten

Im folgenden Beispiel wird die XML-Formatdatei Department.xml für die HumanResources.Department-Tabelle der AdventureWorks2008R2-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

formatnul-fformat_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 AdventureWorks2008R2.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 Schemasyntax für XML-Formatdateien. Informationen zu Zeichendaten finden Sie unter Verwenden des Zeichenformats zum Importieren und Exportieren von Daten.

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

Im folgenden Beispiel wird die XML-Formatdatei Department-n.xml für die HumanResources.Department-Tabelle der AdventureWorks2008R2-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

formatnul-fformat_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 AdventureWorks2008R2.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 Schemasyntax für XML-Formatdateien. Informationen zum Verwenden von systemeigenen Daten finden Sie unter Verwenden des systemeigenen Formats zum Importieren oder Exportieren von Daten.

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 unter den folgenden Hilfethemen: