Herstellen einer Verbindung mit bcp
Das Hilfsprogramm bcp ist mit dem Microsoft ODBC Driver for SQL Server unter Linux und macOS verfügbar. Auf dieser Seite sind die Unterschiede im Vergleich zur Windows-Version von bcp dokumentiert.
Das Feldabschlusszeichen ist ein Tabulator („\t“).
Das Zeilenabschlusszeichen ist ein Zeilenvorschub („\n“).
Zeichenmodus ist das bevorzugte Format für
bcp
-Formatdateien und -Datendateien, die keine Sonderzeichen enthalten.
Hinweis
Ein umgekehrter Schrägstrich ' \' für ein Befehlszeilenargument muss entweder mit Anführungszeichen oder mit Escapezeichen versehen sein. Um z.B. einen Zeilenumbruch als benutzerdefiniertes Zeilenabschlusszeichen anzugeben, müssen Sie einen der folgenden Mechanismen verwenden:
- -r\\n
- -r"\n"
- -r'\n'
Der folgende Code ist ein Beispielbefehlsaufruf von bcp
zum Kopieren von Tabellenzeilen in eine Textdatei:
bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx
Verfügbare Optionen
In der aktuellen Version sind die folgende Syntax und die folgenden Optionen verfügbar:
[database.]schema.table in data_file | out data_file
-a Paketgröße
Gibt an, wie viele Bytes pro Netzwerkpaket an den Server bzw. vom Server gesendet werden.
-b batch_size
Gibt die Anzahl von Zeilen pro importierten Datenbatch an.
-c
Verwendet einen Zeichendatentyp.
-d database_name
Gibt die Datenbank an, mit der eine Verbindung hergestellt werden soll.
-D
Bewirkt, dass der Wert, der an die Option -S von bcp
übergeben wird, als Datenquellenname (Data Source Name, DSN) interpretiert wird. Weitere Informationen finden Sie unter „DSN-Unterstützung in sqlcmd und bcp“ in Herstellen einer Verbindung mit sqlcmd.
-e error_file
Gibt den vollständigen Pfad einer Fehlerdatei an, in der alle Zeilen gespeichert werden, die das Hilfsprogramm bcp
nicht von der Datei in die Datenbank übertragen kann.
-E
Verwendet für die Identitätsspalte in der importierten Datendatei einen Identitätswert oder -werte.
-f format_file
Gibt den vollständigen Pfad einer Formatdatei an.
-F first_row
Gibt die Nummer der ersten Zeile an, die aus einer Tabelle exportiert oder von einer Datendatei importiert werden soll.
-G
Diese Option wird vom Client beim Herstellen einer Verbindung mit Azure SQL-Datenbank, Azure SQL Managed Instance oder Azure Synapse Analytics verwendet, um anzugeben, dass der Benutzer mithilfe der Authentifizierung mit Microsoft Entra (ehemals Azure Active Directory) authentifiziert werden soll. Diese Option kann nur mit -P kombiniert werden, um die Authentifizierung mit Zugriffstoken zu verwenden (Version 17.8 und höher). Der Schalter „-G“ benötigt mindestens die bcp-Version 17.6. Führen Sie „bcp -v“ aus, um die von Ihnen verwendete Version zu ermitteln.
Wichtig
Die Option -G
gilt nur für Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse Analytics.
Die interaktive Microsoft Entra-Authentifizierung wird unter Linux oder macOS derzeit nicht unterstützt. Die integrierte Microsoft Entra-Authentifizierung erfordert Microsoft ODBC-Treiber 17 für SQL Server ab Version 17.6.1 und eine ordnungsgemäß konfigurierte Kerberos-Umgebung.
-k
Gibt an, dass während des Vorgangs keine Standardwerte in leere Spalten eingefügt werden, sondern ein NULL-Wert für diese Spalten beibehalten werden soll.
-l
Gibt einen Anmeldungstimeout an. Die Option „-I“ gibt an, wie viele Sekunden beim Herstellen einer Verbindung mit einem Server verstreichen dürfen, bevor für eine Anmeldung bei SQL Server ein Timeout eintritt. Das Standardanmeldetimeout beträgt 15 Sekunden. Der Timeoutwert für den Anmeldungszeitraum muss eine Zahl zwischen 0 und 65534 sein. Wenn der angegebene Wert kein numerischer Wert ist oder außerhalb dieses Bereichs liegt, generiert bcp
eine Fehlermeldung. Der Wert 0 gibt ein unendliches Timeout an.
-L last_row
Gibt die Nummer der letzten Zeile an, die aus einer Tabelle exportiert oder von einer Datendatei importiert werden soll.
-m max_errors
Gibt an, wie viele Syntaxfehler maximal auftreten können, bevor der bcp
-Vorgang abgebrochen wird.
-n
Verwendet die systemeigenen (Datenbank-) Datentypen, um den Massenkopiervorgang auszuführen.
-P Kennwort
Gibt das Kennwort für die Anmelde-ID an. Wenn die Option mit -G und ohne -U verwendet wird, wird eine Datei angegeben, die ein Zugriffstoken enthält (Version 17.8 und höher). Die Tokendatei sollte im UTF-16LE-Format (ohne BOM) vorliegen.
Zugriffstoken können über verschiedene Methoden abgerufen werden. Da das Zugriffstoken unverändert gesendet wird, muss sichergestellt werden, dass die einzelnen Bytes korrekt sind. Im Folgenden finden Sie einen Beispielbefehl, mit dem ein Zugriffstoken abgerufen wird. Der Befehl verwendet die Azure CLI- und Linux-Befehle und speichert das Token im richtigen Format in einer Datei. Wenn die Standardcodierung Ihres Systems oder Terminals nicht ASCII oder UTF-8 ist, müssen Sie die iconv
-Optionen möglicherweise anpassen. Die resultierende Datei muss zuverlässig geschützt und gelöscht werden, sobald sie nicht mehr benötigt wird.
az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
-q
Führt die Anweisung SET QUOTED_IDENTIFIER ON in der Verbindung zwischen dem Hilfsprogramm bcp
und einer SQL Server-Instanz aus.
-r row_terminator
Gibt das Zeilenabschlusszeichen an.
-R
Gibt an, dass beim Massenkopieren von Währungs-, Datums- und Zeitdaten in SQL Server das Länderformat verwendet wird, das durch die Gebietsschemaeinstellung des Clientcomputers definiert wird.
-S server
Gibt den Namen der SQL Server-Instanz, mit der eine Verbindung hergestellt werden soll oder, wenn „-D“ verwendet wird, ein DSN an
-t field_terminator
Gibt das Feldabschlusszeichen an.
-T
Gibt an, dass das Hilfsprogramm bcp
die Verbindung mit SQL Server mithilfe einer vertrauenswürdigen Verbindung (integrierte Sicherheit) herstellt.
-u
Vertrauen Sie dem Server-Zertifikat (verfügbar seit bcp
Version 18)
-U login_id
Gibt die Anmelde-ID an, die zum Herstellen einer Verbindung mit SQL Serververwendet wird.
-v
Meldet die Versionsnummer und das Copyright für das Hilfsprogramm bcp
.
-w
Verwendet Unicode-Zeichen, um den Massenkopiervorgang auszuführen.
In dieser Version werden Latin-1- und UTF-16-Zeichen unterstützt.
-Y[s|m|o]
Gibt den Verbindungsverschlüsselungsmodus an. Die Optionen sind „Strict“, „Mandatory“ und „Optional“. Bei Verwendung von „-Y“ ohne Parameter wird der Verschlüsselungsmodus „Mandatory“ verwendet und entspricht „-Ym“. (verfügbar seit bcp
Version 18)
Nicht verfügbare Optionen
In der aktuellen Version sind die folgende Syntax und die folgenden Optionen nicht verfügbar:
-C
Gibt die Codepage für die in der Datendatei enthaltenen Daten an.
-h hint
Gibt den oder die Hinweise an, die beim Massenimportieren von Daten in eine Tabelle oder Sicht verwendet werden.
-i input_file
Gibt den Namen einer Antwortdatei an.
-N
Verwendet die systemeigenen (Datenbank-) Datentypen für Daten, die keinen Zeichendatentyp haben, sowie Unicode-Zeichen für Zeichendaten.
-o Ausgabedatei
Gibt den Namen einer Datei an, in die die Ausgabe geschrieben wird, die von der Eingabeaufforderung umgeleitet wurde.
-V (80 | 90 | 100)
Verwendet Datentypen aus einer früheren Version von SQL Server.
-x
Bei Verwendung mit den Optionen Format und -f format_file wird anstelle der standardmäßigen Nicht-XML-Formatdatei eine XML-basierte Formatdatei generiert.
Siehe auch
Herstellen einer Verbindung mit sqlcmd
Anmerkungen zu dieser Version