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.
Hinweis |
---|
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
Hinweis |
---|
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.
Hinweis |
---|
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
Hinweis |
---|
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.
Hinweis |
---|
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.
|
||
-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:
Überspringen einer Tabellenspalte mithilfe einer Formatdatei (SQL Server)
Auslassen eines Datenfelds mithilfe einer Formatdatei (SQL Server)
Verwenden einer Formatdatei zum Zuordnen von Tabellenspalten zu Datendateifeldern (SQL Server)
Siehe auch
Verweis
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)