Angeben von Datenformaten für die Kompatibilität mithilfe von bcp

Wenn Sie MicrosoftSQL Server-Daten für den Massenimport in ein anderes Programm (z. B. ein anderes Datenbankprogramm) massenexportieren, sind die Standarddatenformate (systemeigenes Format, Zeichenformat oder Unicode) eventuell nicht mit dem vom anderen Programm erwarteten Datenlayout kompatibel. Falls eine Inkompatibilität vorliegt, müssen Sie beim Exportieren von Daten das Datenlayout beschreiben.

HinweisHinweis

Falls Sie mit den Datenformaten zum Importieren oder Exportieren von Daten nicht vertraut sind, finden Sie weitere Informationen unter Datenformate für das Importieren oder Exportieren von Daten.

Mit dem Befehl bcp können Sie die Struktur jedes Felds in einer Datendatei im Hinblick auf die folgenden Datenformatattribute angeben:

  • Dateispeichertyp

    Der Dateispeichertyp beschreibt, wie Daten in der Datendatei gespeichert werden. Daten können in eine Datendatei als Typ der Datenbanktabelle (systemeigenes Format), als Zeichendarstellung (Zeichenformat) oder als beliebiger Datentyp, bei dem die implizite Konvertierung unterstützt wird, exportiert werden. Beispielsweise kann ein smallint als ein int kopiert werden. Benutzerdefinierte Datentypen werden als Basistypen exportiert. Weitere Informationen finden Sie unter Angeben des Dateispeichertyps mithilfe von bcp.

  • Präfixlänge

    Für die kompakteste Form der Dateispeicherung beim Massenexportieren von Daten im systemeigenen Format in eine Datendatei setzt der Befehl bcp mindestens ein Zeichen, das auf die Länge des Felds hinweist, vor jedes Feld. Diese Zeichen werden als Längenpräfixzeichen bezeichnet. Weitere Informationen finden Sie unter Angeben der Präfixlänge in Datendateien.

  • Feldlänge

    Die Feldlänge weist auf die maximale Anzahl von Zeichen hin, die zum Darstellen der Daten im Zeichenformat benötigt werden. Die Feldlänge ist bereits bekannt, wenn die Daten im systemeigenen Format gespeichert werden. Weitere Informationen finden Sie unter Angeben der Feldlänge mithilfe von bcp.

  • Feldabschlusszeichen

    Für Zeichendatenfelder kann mit optionalen abschließenden Zeichen das Ende jedes Felds in einer Datendatei (mithilfe eines Feldabschlusszeichens) und das Ende jeder Zeile (mithilfe eines Zeilenabschlusszeichens) markiert werden. Abschließende Zeichen sind eine Möglichkeit, um Programme, die die Datendatei lesen, darauf hinzuweisen, an welcher Stelle ein Feld oder eine Zeile endet und ein anderes Feld bzw. eine andere Zeile beginnt. Weitere Informationen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen.

Übersicht über die feldspezifischen Eingabeaufforderungen

Wenn ein interaktiver bcp-Befehl die Option in oder out, jedoch keinen Formatdateischalter (-f) bzw. keinen Datenformatschalter (-n, -c, -w oder -N) für die Spalten der Quell- oder Zieltabelle enthält, fordert der Befehl zur Eingabe der vorherigen Attribute auf. Für jede Eingabeaufforderung stellt der Befehl bcp einen Standardwert basierend auf dem SQL Server-Datentyp der Tabellenspalte bereit. Wenn Sie den Standardwert für alle Eingabeaufforderungen übernehmen, erhalten Sie dieselben Ergebnisse wie beim Angeben des systemeigenen Formats (-n) in der Befehlszeile. Für jede Eingabeaufforderung wird ein Standardwert in eckigen Klammern angezeigt: [default]. Durch Drücken der EINGABETASTE wird der angezeigte Standardwert übernommen. Wenn Sie einen Wert angeben möchten, der vom Standardwert abweicht, geben Sie den neuen Wert an der Eingabeaufforderung ein.

Beispiel

Im folgenden Beispiel werden mit dem Befehl bcp Daten aus der HumanResources.myTeam-Tabelle interaktiv in die Datei myTeam.txt massenexportiert. Bevor Sie das Beispiel ausführen können, müssen Sie diese Tabelle erstellen. Weitere Informationen zu dieser Tabelle und zur Vorgehensweise zum Erstellen dieser Tabelle finden Sie unter Erstellen der HumanResources.myTeam-Tabelle.

Der Befehl gibt weder eine Formatdatei noch einen Datentyp an, weshalb bcp zur Eingabe von Datenformatinformationen auffordert. Geben Sie an der Eingabeaufforderung von Microsoft Windows Folgendes ein:

bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T

bcp fordert für jede Spalte zur Eingabe feldspezifischer Werte auf. Das folgende Beispiel zeigt die feldspezifischen Eingabeaufforderungen für die Spalten EmployeeID und Name der Tabelle und schlägt den Standard-Dateispeichertyp (systemeigenes Format) für jede Spalte vor. Die Präfixlängen der Spalten EmployeeID und Name betragen 0 bzw. 2. Der Benutzer gibt ein Komma (,) als Feldabschlusszeichen für jedes Feld an.

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

Gleichwertige Eingabeaufforderungen (soweit erforderlich) werden für jede Tabellenspalte angezeigt.

Speichern von feldspezifischen Daten in einer Nicht-XML-Formatdatei

Nachdem alle Tabellenspalten angegeben wurden, werden Sie vom Befehl bcp gefragt, ob optional eine Nicht-XML-Formatdatei generiert werden soll, in der die gerade eingegebenen feldspezifischen Informationen gespeichert werden (siehe vorheriges Beispiel). Wenn Sie eine Formatdatei generieren, können Sie diese beim Exportieren von Daten aus dieser Tabelle oder Importieren identisch strukturierter Daten in SQL Server verwenden.

HinweisHinweis

Mithilfe der Formatdatei können Sie Daten aus der Datendatei in eine Instanz von SQL Server massenimportieren oder Daten aus der Tabelle massenexportieren, ohne das Format erneut angeben zu müssen. Weitere Informationen finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten.

Das folgende Beispiel erstellt die Nicht-XML-Formatdatei myFormatFile.fmt:

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

Der Standardname der Formatdatei ist bcp.fmt, Sie können aber einen anderen Dateinamen angeben.

HinweisHinweis

Für eine Datendatei, die ein einziges Datenformat für den Dateispeichertyp verwendet, wie z. B. das Zeichenformat oder das systemeigene Format, können Sie mit der Option format schnell eine Formatdatei erstellen, ohne Daten zu exportieren oder zu importieren. Diese Vorgehensweise hat den Vorteil, dass sie einfach ist und die Möglichkeit bietet, eine XML-Formatdatei oder eine Nicht-XML-Formatdatei zu erstellen. Weitere Informationen finden Sie unter Erstellen einer Formatdatei.

In diesem Abschnitt

Dieser Abschnitt enthält die folgenden Themen:

Thema

Datenformatattribut

Angeben des Dateispeichertyps mithilfe von bcp

Enthält Informationen zum Angeben des Dateispeichertyps in einem bcp-Befehl.

Angeben der Präfixlänge in Datendateien

Enthält Informationen zum Angeben der Präfixlänge in einem bcp-Befehl.

Angeben der Feldlänge mithilfe von bcp

Enthält Informationen zum Angeben der Feldlänge in einem bcp-Befehl.

Angeben von Feld- und Zeilenabschlusszeichen

Enthält Informationen zum Angeben der Feld- und Zeilenabschlusszeichen in einem bcp-Befehl.

Speichern von Daten im Zeichenformat

Enthält Informationen dazu, wie Daten im Zeichenformat in einer exportierten Datendatei gespeichert werden.