Freigeben über


Erstellen einer Formatdatei (SQL Server)

Wenn Sie einen Massenimport in eine SQL Server-Tabelle oder einen Massenexport von Daten aus einer Tabelle ausführen, können Sie eine Formatdatei in ein flexibles System zum Schreiben von Datendateien verwenden, die nur wenig oder gar keine Bearbeitung erfordern, um andere Datenformate einzuhalten oder Datendateien aus anderen Softwareprogrammen zu lesen.

SQL Server unterstützt zwei Typen von Formatdateien: Nicht-XML- und XML-Format. 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.

Hinweis

Die zum Lesen der Formatdatei verwendete Version des Hilfsprogramms bcp (Bcp.exe) muss mit der Version, mit der die Formatdatei erstellt wurde, identisch oder eine höhere Version sein. Beispielsweise kann SQL Server 2012bcp eine Formatdatei der Version 10.0 lesen, die von SQL Server 2008bcp generiert wird, sql Server 2008bcp jedoch keine Formatdatei der Version 11.0 lesen kann, die von SQL Server 2012bcp generiert wird.

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, -woder -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 -fformat_file_name

Hinweis

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

Informationen zu Struktur und 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 den Beispielen wird die HumanResources.Department Tabelle in der AdventureWorks2012-Beispieldatenbank verwendet. Die HumanResources.Department -Tabelle enthält vier Spalten: DepartmentID, Name, GroupNameund ModifiedDate.

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

Im folgenden Beispiel wird für die Tabelle "AdventureWorks2012HumanResources.Department" eine XML-Formatdatei Department-n.xmlerstellt. 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-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 -U und -P angeben, um sich erfolgreich anzumelden.

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.fmtenthält die folgenden Informationen:

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

Im folgenden Beispiel wird für die Tabelle "AdventureWorks2012HumanResources.Department" eine XML-Formatdatei Department.fmterstellt. 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-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 -U und -P angeben, um sich erfolgreich anzumelden.

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

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 zur Verwendung von nativen Unicode-Daten finden Sie unter Verwenden des nativen 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 zur Verwendung von Unicode-Zeichendaten finden Sie unter Verwenden des Unicode-Zeichenformats zum Importieren oder 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

Hinweis

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

Informationen zu Struktur und 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 den Beispielen wird die HumanResources.Department Tabelle in der AdventureWorks2012-Beispieldatenbank verwendet. Die HumanResources.Department -Tabelle enthält vier Spalten: DepartmentID, Name, GroupNameund ModifiedDate.

Hinweis

Adventure Works Cycles ist ein fiktionales Fertigungsunternehmen, das zum Demonstrieren von Datenbankkonzepten und -szenarien dient.

A. Erstellen einer XML-Formatdatei für Zeichendaten

Im folgenden Beispiel wird für die Tabelle "AdventureWorks2012HumanResources.Department" eine XML-Formatdatei Department.xmlerstellt. 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-f format_file -x Gibt die XML-Formatdatei an.
-c Gibt Zeichendaten an.
-t , Gibt ein Komma (,) als Feldabschlusszeichen an.

Hinweis: 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 -U und -P angeben, um sich erfolgreich anzumelden.

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 Nicht-XML-Formatdateien (SQL Server). Informationen zu Zeichendaten finden Sie unter Verwenden des Zeichenformats zum Importieren oder 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
formatnul-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 -U und -P angeben, um sich erfolgreich anzumelden.

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 Nicht-XML-Formatdateien (SQL Server). Informationen zur Verwendung nativer Daten finden Sie unter Verwenden des nativen Formats zum Importieren oder Exportieren von Daten (SQL Server).

Zuordnen von Datenfeldern zu Tabellenspalten

In einer mit bcperstellten Formatdatei werden alle Tabellenspalten in ihrer Reihenfolge beschrieben. 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:

Weitere Informationen

bcp (Hilfsprogramm)
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)