Freigeben über


Angeben von Datenformaten für die Kompatibilität bei Verwendung von bcp (SQL Server)

In diesem Thema werden die Datenformatattribute, feldspezifischen Eingabeaufforderungen und das Speichern von Feld-nach-Feld-Daten in einer Formatdatei, die keine XML-Datei ist, des SQL Server bcp-Befehls beschrieben. Das Verständnis dieser Konzepte kann für Sie nützlich sein, wenn Sie SQL Server-Daten für den Massenimport in ein anderes Programm, z. B. ein anderes Datenbankprogramm, mit einem Massenexportvorgang exportieren. Die Standarddatenformate in (systemeigen, Zeichen oder Unicode) der Quelltabelle können mit dem vom anderen Programm erwarteten Datenlayout inkompatibel sein. 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 Massenimport oder Massenexport (SQL Server).

In diesem Thema:

  • bcp-Datenformatattribute

  • Übersicht über die feldspezifischen Eingabeaufforderungen

  • Speichern von feldspezifischen Daten in einer Nicht-XML-Formatdatei

  • Verwandte Aufgaben

  • Verwandte Inhalte

bcp-Datenformatattribute

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 (SQL Server).

  • 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 mittels bcp (SQL Server).

  • 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 (SQL Server).

  • 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 (SQL Server).

[Nach oben]

Ü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 HumanResources.myTeam-Beispieltabelle (SQL Server).

Der Befehl gibt weder eine Formatdatei noch einen Datentyp an, weshalb bcp zur Eingabe von Datenformatinformationen auffordert. Geben Sie an der Microsoft Windows-Eingabeaufforderung 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.

[Nach oben]

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 (SQL Server).

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 (SQL Server).

[Nach oben]

Verwandte Aufgaben

Verwandte Inhalte

Keine Angabe.

Siehe auch

Verweis

bcp (Hilfsprogramm)

Datentypen (Transact-SQL)

Konzepte

Massenimport und -export von Daten (SQL Server)

Datenformate für Massenimport oder Massenexport (SQL Server)