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

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Datenbank in Microsoft Fabric

Dieser Artikel beschreibt die Datenformatattribute, feldspezifische Eingabeaufforderungen und wie man feldweise Daten in einer nicht-XML-Datei des bcp Programms speichert. Diese Informationen können helfen, wenn Sie SQL Server-Daten in großen Mengen exportieren, um sie in ein anderes Programm, zum Beispiel in ein anderes Datenbankprogramm, zu importieren. Die Standarddatenformate (native, Zeichen oder Unicode) in der Quelltabelle könnten mit dem vom anderen Programm erwarteten Datenlayout inkompatibel sein. Wenn eine Inkompatibilität besteht, müssen Sie das Datenlayout beim Exportieren der Daten beschreiben.

Hinweis

Weitere Informationen zu Datenformaten zum Import oder Exportieren von Daten finden Sie unter Datenformate für Massenimport oder Massenexport.

BCP-Datenformatattribute

Verwenden Sie bcp, um die Struktur jedes Felds in einer Datendatei mithilfe der folgenden Datenformatattribute anzugeben:

  • Dateispeichertyp

    Der Dateispeichertyp beschreibt, wie Daten in der Datendatei gespeichert werden. Sie können Daten in eine Datendatei im Format des Datenbanktabellentyps (natives Format), in der Zeichendarstellung (Zeichenformat) oder als beliebigen Datentyp exportieren, der eine implizite Konvertierung unterstützt. Zum Beispiel kannst du einen smallint als int kopieren. Benutzerdefinierte Datentypen werden als ihre Basistypen exportiert. Für weitere Informationen siehe Dateispeichertyp mit bcp angeben.

  • Präfixlänge

    Um den kompaktesten Dateispeicher für den Massenexport von Daten im nativen Format in eine Datendatei bereitzustellen, bcp wird jedem Feld ein oder mehrere Zeichen vorausgestellt, die die Länge des Feldes anzeigen. Diese Zeichen werden als Längenpräfixzeichen bezeichnet. Weitere Informationen finden Sie unter Angeben der Präfixlänge in Datendateien mithilfe von bcp.

  • 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 Feldlänge mithilfe von bcp angeben.

  • Feldtrennzeichen

    Bei Zeichendatenfeldern ermöglichen optionale Abschlusszeichen das Markieren des Endes jedes Feldes in einer Datendatei (mit einem Feldterminator) und das Ende jeder Zeile (mit einem Zeilenterminator). 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 Feld- und Zeilenabschlusszeichen angeben.

Überblick über die bereichsspezifischen Prompts

Wenn Sie out interaktiv mit der Option bcp oder -f ausführen, aber weder den Formatdateischalter (-n) noch für jede Spalte der Quell- oder Zieltabelle einen Datenformatschalter (-c, -w, -N oder bcp) angeben, fordert in der Reihe nach zur Eingabe aller vorstehenden Attribute auf. In jeder Eingabeaufforderung stellt bcp einen Standardwert auf Grundlage des SQL Server-Datentyps der Tabellenspalte bereit. Das Akzeptieren des Standardwerts für alle Eingaben ergibt dasselbe Ergebnis wie die Angabe des nativen Formats (-n) in der Kommandozeile. Für jede Eingabeaufforderung wird ein Standardwert in eckigen Klammern angezeigt: [Standard]. Drücken Sie ENTER, um die angezeigte Standardeinstellung zu akzeptieren. Wenn Sie einen Wert angeben möchten, der vom Standardwert abweicht, geben Sie den neuen Wert an der Eingabeaufforderung ein.

Beispiel

Das folgende Beispiel verwendet bcp den Bulk-Export von Daten aus der HumanResources.myTeam Tabelle interaktiv in die myTeam.txt Datei. Bevor Sie das Beispiel ausführen können, müssen Sie diese Tabelle erstellen. Informationen zur Tabelle und deren Erstellung finden Sie unter HumanResources.myTeam Mustertabelle.

Der Befehl gibt weder eine Formatdatei noch einen Datentyp an, sondern bcp fordert daher Datenformatinformationen an. Geben Sie an der Eingabeaufforderung von Windows Folgendes ein:

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

Für jede Spalte fordert bcp 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 EmployeeID und Name der Spalten sind 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]:,

.

.

.

Entsprechende Eingabeaufforderungen erscheinen bei Bedarf für jede der Tabellenspalten in der Reihenfolge.

Feld-für-Feld-Daten in einer Datei im Nicht-XML-Format speichern

Nachdem du alle Tabellenspalten angegeben hast, bcp fordert sie dich auf, optional eine Datei im Nicht-XML-Format zu generieren, die die gerade eingelieferten Feld-für-Feld-Informationen speichert (siehe das vorherige Beispiel). Wenn du dich entscheidest, eine Formatdatei zu generieren, kannst du sie verwenden, wann immer du Daten aus dieser Tabelle exportierst oder ähnlich strukturierte Daten in den SQL Server importierst.

Hinweis

Mithilfe der Formatdatei können Sie Daten aus der Datendatei in eine Instanz von SQL Server gesammelt importieren oder Daten aus der Tabelle gesammelt exportieren, ohne das Format erneut angeben zu müssen. Weitere Informationen finden Sie unter Dateiformatierung 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 für die Formatdatei ist bcp.fmt, aber du kannst einen anderen Dateinamen angeben, wenn du möchtest.

Hinweis

Für eine Datendatei, die ein einzelnes Datenformat für ihren Speichertyp verwendet, wie z. B. Zeichen oder natives Format, können Sie schnell eine Formatdatei erstellen, ohne Daten zu exportieren oder zu importieren, indem Sie die format Option verwenden. Dieser Ansatz ist einfach und ermöglicht es, entweder eine XML-Datei oder eine Nicht-XML-Datei zu erstellen. Weitere Informationen finden Sie unter Formatdatei mit bcp erstellen.