Hilfsprogramms bcpbcp Utility

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Mit Bcp unter Linux finden Sie unter Sqlcmd und Bcp unter Linux installieren.For using bcp on Linux, see Install sqlcmd and bcp on Linux.

Ausführliche Informationen zum Verwenden von Bcp mit Azure SQL Data Warehouse finden Sie unter Laden von Daten mit Bcp.For detailed information about using bcp with Azure SQL Data Warehouse, see Load data with bcp.

Mit dem Hilfsprogramm bcp(Bulk Copy Program) werden Daten per Massenvorgang zwischen einer Instanz von MicrosoftMicrosoft SQL ServerSQL Server und einer Datendatei in einem benutzerdefinierten Format kopiert.The bulk copy program utility (bcp) bulk copies data between an instance of MicrosoftMicrosoft SQL ServerSQL Server and a data file in a user-specified format. Das Hilfsprogramm bcp kann verwendet werden, um große Mengen neuer Zeilen in SQL ServerSQL Server -Tabellen zu importieren oder um Daten aus Tabellen in Datendateien zu exportieren.The bcp utility can be used to import large numbers of new rows into SQL ServerSQL Server tables or to export data out of tables into data files. Außer in Verbindung mit der Option queryout sind für das Hilfsprogramm keine Kenntnisse von Transact-SQLTransact-SQLerforderlich.Except when used with the queryout option, the utility requires no knowledge of Transact-SQLTransact-SQL. Um Daten in eine Tabelle zu importieren, müssen Sie entweder eine für diese Tabelle erstellte Formatdatei verwenden oder die Struktur der Tabelle und die Art der Daten kennen, die in den Tabellenspalten zulässig sind.To import data into a table, you must either use a format file created for that table or understand the structure of the table and the types of data that are valid for its columns.

Artikellinksymbol Informationen zu den bcp-Syntaxkonventionen finden Sie unter Transact-SQL-Syntaxkonventionen (Transact-SQL).Topic link icon For the syntax conventions that are used for the bcp syntax, see Transact-SQL Syntax Conventions (Transact-SQL).

Hinweis

Wenn Sie Ihre Daten mit bcp sichern, müssen Sie zum Aufzeichnen des Datenformats eine Formatdatei erstellen.If you use bcp to back up your data, create a format file to record the data format. bcp -Datendateien enthalten keine Schema- oder Formatinformationen. Daher können Sie die Daten möglicherweise nicht mehr importieren, wenn Sie eine Tabelle löschen und keine Formatdatei vorhanden ist.bcp data files do not include any schema or format information, so if a table or view is dropped and you do not have a format file, you may be unable to import the data.

Herunterladen der neuesten Version des Hilfsprogramms bcpDownload the latest version of bcp Utility

downloadMicrosoft Befehlszeilen-Hilfsprogramme 15.0 für SQL Server (x64) herunterladendownload Download Microsoft Command Line Utilities 15.0 for SQL Server (x64)
downloadMicrosoft Befehlszeilen-Hilfsprogramme 15.0 für SQL Server (x86) herunterladendownload Download Microsoft Command Line Utilities 15.0 for SQL Server (x86)

Die Befehlszeilentools sind General Availability (GA), jedoch mit dem Installationspaket für die Veröffentlichung wird SQL Server-2019 (Vorschau)SQL Server 2019 preview.The command line tools are General Availability (GA), however they are being released with the installer package for SQL Server-2019 (Vorschau)SQL Server 2019 preview.

VersionsinformationenVersion Information

Releasenummer: 15.0Release number: 15.0
Buildnummer: 15.0.1000.34Build number: 15.0.1000.34
Veröffentlichungsdatum: 18. Oktober 2018Release date: October 18, 2018

Die neue Version von SQLCMD unterstützt Azure AD-Authentifizierung, einschließlich Multi-Factor Authentication (MFA)-Unterstützung für SQL-Datenbank, SQL Data Warehouse und Always Encrypted-Features.The new version of SQLCMD supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database, SQL Data Warehouse, and Always Encrypted features. Die neue BCP unterstützt Azure AD-Authentifizierung, einschließlich Multi-Factor Authentication (MFA)-Unterstützung für SQL-Datenbank und SQL Data Warehouse.The new BCP supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database and SQL Data Warehouse.

Systemanforderungen Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2 diese Komponente erfordert sowohl Windows Installer 4.5 und Microsoft ODBC-Treiber 17.2 für SQLServer.System Requirements Windows 10 , Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2 This component requires both Windows Installer 4.5 and Microsoft ODBC Driver 17.2 for SQL Server.

Um zu überprüfen, führen Sie die BCP-Version bcp /v Befehl und vergewissern Sie sich diese 15.0.1000.34 oder höher verwendet wird.To check the BCP version execute bcp /v command and confirm that 15.0.1000.34 or higher is in use.

SyntaxSyntax
bcp [database_name.] schema.{table_name | view_name | "query"}
    {in data_file | out data_file | queryout data_file | format nul}
                                                                                                         
    [-a packet_size]
    [-b batch_size]
    [-c]
    [-C { ACP | OEM | RAW | code_page } ]
    [-d database_name]
    [-e err_file]
    [-E]
    [-f format_file]
    [-F first_row]
    [-G Azure Active Directory Authentication]
    [-h"hint [,...n]"]
    [-i input_file]
    [-k]
    [-K application_intent]
    [-L last_row]
    [-m max_errors]
    [-n]
    [-N]
    [-o output_file]
    [-P password]
    [-q]
    [-r row_term]
    [-R]
    [-S [server_name[\instance_name]]
    [-t field_term]
    [-T]
    [-U login_id]
    [-v]
    [-V (80 | 90 | 100 | 110 | 120 | 130 ) ]
    [-w]
    [-x]

ArgumenteArguments

data_filedata_file
Der vollständige Pfad der Datendatei.Is the full path of the data file. Wenn Daten in SQL ServerSQL Servermassenimportiert werden, enthält die Datendatei die Daten, die in die angegebene Tabelle oder Sicht kopiert werden sollen.When data is bulk imported into SQL ServerSQL Server, the data file contains the data to be copied into the specified table or view. Beim Massenexportieren aus SQL ServerSQL Serverenthält die Datendatei die Daten, die aus der Tabelle oder Sicht kopiert wurden.When data is bulk exported from SQL ServerSQL Server, the data file contains the data copied from the table or view. Der Pfad kann 1 bis 255 Zeichen enthalten.The path can have from 1 through 255 characters. Die Datendatei kann maximal 2^63-1 Zeilen enthalten.The data file can contain a maximum of 2^63 - 1 rows.

database_namedatabase_name
Der Name der Datenbank, in der die angegebene Tabelle oder Sicht vorhanden ist.Is the name of the database in which the specified table or view resides. Wenn kein Name angegeben ist, wird diese Datenbank als Standarddatenbank des Benutzers verwendet.If not specified, this is the default database for the user.

Sie können den Datenbanknamen mit d- auch explizit angeben.You can also explicitly specify the database name with d-.

in data_file | out data_file | queryout data_file | format nulin data_file | out data_file | queryout data_file | format nul
Gibt die Richtung des Massenkopierens wie folgt an:Specifies the direction of the bulk copy, as follows:

  • in werden Daten aus einer Datei in die Datenbanktabelle oder -sicht kopiert.in copies from a file into the database table or view.

  • out werden Daten aus der Datenbanktabelle oder -sicht in eine Datei kopiert.out copies from the database table or view to a file. Wenn Sie eine vorhandene Datei angeben, wird die Datei überschrieben.If you specify an existing file, the file is overwritten. Beachten Sie, dass das Hilfsprogramm bcp beim Extrahieren von Daten leere Zeichenfolgen als NULL-Zeichenfolgen und NULL-Zeichenfolgen als leere Zeichenfolgen darstellt.When extracting data, note that the bcp utility represents an empty string as a null and a null string as an empty string.

  • queryout werden Daten aus einer Abfrage kopiert. Diese Option muss nur beim Massenkopieren von Daten über eine Abfrage angegeben werden.queryout copies from a query and must be specified only when bulk copying data from a query.

  • format wird eine Formatdatei basierend auf der angegebenen Option (-n, -c, -woder -N) und den Tabellen- oder Sichttrennzeichen erstellt.format creates a format file based on the option specified (-n, -c, -w, or -N) and the table or view delimiters. Beim Massenkopieren von Daten kann der Befehl bcp auf eine Formatdatei verweisen. Dies erspart Ihnen die wiederholte interaktive Eingabe von Formatinformationen.When bulk copying data, the bcp command can refer to a format file, which saves you from re-entering format information interactively. Für die Option format ist die Option -f erforderlich. Zum Erstellen einer XML-Formatdatei muss zudem die Option -x angegeben werden.The format option requires the -f option; creating an XML format file, also requires the -x option. Weitere Informationen finden Sie unter Erstellen einer Formatdatei (SQL Server).For more information, see Create a Format File (SQL Server). Sie müssen nul als Wert angeben (format nul).You must specify nul as the value (format nul).

    ownerowner
    Dies ist der Namen des Besitzers der Tabelle oder Sicht.Is the name of the owner of the table or view. owner ist optional, wenn der Benutzer, der den Vorgang ausführt, der Besitzer der angegebenen Tabelle oder Sicht ist.owner is optional if the user performing the operation owns the specified table or view. Wenn owner nicht angegeben wird und der Benutzer, der den Vorgang ausführt, nicht Besitzer der angegebenen Tabelle oder Sicht ist, gibt SQL ServerSQL Server eine Fehlermeldung zurück, und der Vorgang wird abgebrochen.If owner is not specified and the user performing the operation does not own the specified table or view, SQL ServerSQL Server returns an error message, and the operation is canceled.

" query " Eine Transact-SQLTransact-SQL-Abfrage, die ein Resultset zurückgibt." query " Is a Transact-SQLTransact-SQL query that returns a result set. Wenn die Abfrage mehrere Resultsets zurückgibt, wird nur das erste Resultset in die Datendatei kopiert; nachfolgende Resultsets werden nicht berücksichtigt.If the query returns multiple result sets, only the first result set is copied to the data file; subsequent result sets are ignored. Schließen Sie die Abfrage in doppelte Anführungszeichen und alle Elemente, die in die Abfrage eingebettet sind, in einfache Anführungszeichen ein.Use double quotation marks around the query and single quotation marks around anything embedded in the query. queryout muss auch angegeben werden, wenn Sie Daten aus einer Abfrage massenkopieren.queryout must also be specified when bulk copying data from a query.

Die Abfrage kann auf eine gespeicherte Prozedur verweisen, sofern alle Tabellen, auf die innerhalb der gespeicherten Prozedur verwiesen werden, vor der Ausführung der bcp-Anweisung vorhanden sind.The query can reference a stored procedure as long as all tables referenced inside the stored procedure exist prior to executing the bcp statement. Wenn die gespeicherte Prozedur beispielsweise eine temporäre Tabelle generiert, tritt bei der bcp -Anweisung ein Fehler auf, da die temporäre Tabelle nur zur Laufzeit und nicht zum Zeitpunkt der Anweisungsausführung verfügbar ist.For example, if the stored procedure generates a temp table, the bcp statement fails because the temp table is available only at run time and not at statement execution time. Ziehen Sie in diesem Fall in Erwägung, die Ergebnisse der gespeicherten Prozedur in eine Tabelle einzufügen und dann bcp zum Kopieren der Daten aus der Tabelle in eine Datendatei zu verwenden.In this case, consider inserting the results of the stored procedure into a table and then use bcp to copy the data from the table into a data file.

table_nametable_name
Der Name der Zieltabelle, wenn Daten in SQL ServerSQL Server importiert werden (in), oder der Name der Quelltabelle, wenn Daten aus SQL ServerSQL Server exportiert werden (out).Is the name of the destination table when importing data into SQL ServerSQL Server (in), and the source table when exporting data from SQL ServerSQL Server (out).

view_name view_name
Der Name der Zielsicht, wenn Daten in SQL ServerSQL Server kopiert werden (in), oder der Name der Quellsicht, wenn Daten aus SQL ServerSQL Server kopiert werden (out).Is the name of the destination view when copying data into SQL ServerSQL Server (in), and the source view when copying data from SQL ServerSQL Server (out). Als Zielsichten können nur Sichten verwendet werden, in denen alle Spalten auf dieselbe Tabelle verweisen.Only views in which all columns refer to the same table can be used as destination views. Weitere Informationen zu den Einschränkungen beim Kopieren von Daten in Sichten finden Sie unter INSERT (Transact-SQL).For more information on the restrictions for copying data into views, see INSERT (Transact-SQL).

-a packet_size-a packet_size
Gibt an, wie viele Bytes pro Netzwerkpaket an den Server bzw. vom Server gesendet werden.Specifies the number of bytes, per network packet, sent to and from the server. Eine Serverkonfigurationsoption kann mithilfe von SQL Server Management StudioSQL Server Management Studio (oder der gespeicherten Systemprozedur sp_configure ) festgelegt werden.A server configuration option can be set by using SQL Server Management StudioSQL Server Management Studio (or the sp_configure system stored procedure). Die Serverkonfigurationsoption kann jedoch mithilfe dieser Option einzeln überschrieben werden.However, the server configuration option can be overridden on an individual basis by using this option. packet_size kann einen Wert von 4096 bis 65535 Bytes annehmen. Der Standardwert ist 4096.packet_size can be from 4096 to 65535 bytes; the default is 4096.

Durch einen höheren Wert für die Paketgröße kann die Leistung von Massenkopiervorgängen verbessert werden.Increased packet size can enhance performance of bulk-copy operations. Wenn eine größere Paketgröße angefordert, aber nicht erteilt wird, wird die Standardeinstellung verwendet.If a larger packet is requested but cannot be granted, the default is used. Die vom Hilfsprogramm bcp generierte Leistungsstatistik zeigt die verwendete Paketgröße an.The performance statistics generated by the bcp utility show the packet size used.

-b batch_size-b batch_size
Gibt die Anzahl von Zeilen pro importierten Datenbatch an.Specifies the number of rows per batch of imported data. Jeder Batch wird als separate Transaktion importiert und protokolliert, für die erst dann ein Commit ausgeführt wird, nachdem der gesamte Batch importiert wurde.Each batch is imported and logged as a separate transaction that imports the whole batch before being committed. Standardmäßig werden alle Zeilen in der Datendatei als jeweils ein Batch importiert.By default, all the rows in the data file are imported as one batch. Um die Zeilen auf mehrere Batches aufzuteilen, geben Sie mit batch_size eine Batchgröße an, die kleiner ist als die Anzahl von Zeilen in der Datendatei.To distribute the rows among multiple batches, specify a batch_size that is smaller than the number of rows in the data file. Wenn die Transaktion für einen Batch einen Fehler erzeugt, wird nur für die Einfügungen aus dem aktuellen Batch ein Rollback ausgeführt.If the transaction for any batch fails, only insertions from the current batch are rolled back. Auf Batches, die bereits durch Transaktionen importiert wurden, für die ein Commit ausgeführt wurde, wirken sich spätere Fehler nicht aus.Batches already imported by committed transactions are unaffected by a later failure.

Verwenden Sie diese Option nicht in Verbindung mit der Option -h " ROWS_PER_BATCH =bb" .Do not use this option in conjunction with the -h " ROWS_PER_BATCH =bb" option.

-c-c
Führt den Vorgang mithilfe eines Zeichendatentyps aus.Performs the operation using a character data type. Diese Option fordert für keines der Felder zu einer Eingabe auf. Es werden folgende Einstellungen verwendet: char als Speichertyp, keine Präfixe, \t (Tabstoppzeichen) als Feldtrennzeichen und \r\n (Zeilenumbruchzeichen) als Zeilenabschlusszeichen.This option does not prompt for each field; it uses char as the storage type, without prefixes and with \t (tab character) as the field separator and \r\n (newline character) as the row terminator. -c ist nicht kompatibel mit -w.-c is not compatible with -w.

Weitere Informationen finden Sie unter Verwenden des Zeichenformats zum Importieren oder Exportieren von Daten (SQL Server).For more information, see Use Character Format to Import or Export Data (SQL Server).

-C { ACP | OEM | RAW | Codepage } -C { ACP | OEM | RAW | code_page }
Gibt die Codepage für die in der Datendatei enthaltenen Daten an.Specifies the code page of the data in the data file. Codepage ist nur dann von Bedeutung, wenn die Daten char-, varchar- oder text -Spalten mit Zeichenwerten enthalten, die größer als 127 oder kleiner als 32 sind.code_page is relevant only if the data contains char, varchar, or text columns with character values greater than 127 or less than 32.

Hinweis

Es wird empfohlen, für jede Spalte in einer Formatdatei einen Sortierungsnamen anzugeben, außer wenn die 65001-Option Priorität vor der Angabe von Sortierung/Codepage haben soll.We recommend specifying a collation name for each column in a format file, except when you want the 65001 option to have priority over the collation/code page specification.

CodepagewertCode page value und BeschreibungDescription
ACPACP ANSIANSI/Microsoft Windows (ISO 1252)./Microsoft Windows (ISO 1252).
OEMOEM Standardcodepage, die vom Client verwendet wird.Default code page used by the client. Die Standardcodepage, die verwendet wird, wenn -C nicht angegeben wird.This is the default code page used if -C is not specified.
RAWRAW Es erfolgt keine Konvertierung von einer Codepage zu einer anderen.No conversion from one code page to another occurs. Dies ist die schnellste Option, da keine Konvertierung vorgenommen wird.This is the fastest option because no conversion occurs.
Codepagecode_page Bestimmte Codepagenummer, z. B. 850.Specific code page number; for example, 850.

In Versionen vor Version 13 ( SQL Server 2016 (13.x)SQL Server 2016 (13.x)) wird die Codepage 65001 (UTF-8-Codierung) nicht unterstützt.Versions prior to version 13 ( SQL Server 2016 (13.x)SQL Server 2016 (13.x)) do not support code page 65001 (UTF-8 encoding). Ab Version 13 kann die UTF-8-Codierung in frühere Versionen von SQL ServerSQL Serverimportiert werden.Versions beginning with 13 can import UTF-8 encoding to earlier versions of SQL ServerSQL Server.

-d database_name -d database_name
Gibt die Datenbank an, mit der eine Verbindung hergestellt werden soll.Specifies the database to connect to. bcp.exe stellt standardmäßig eine Verbindung mit der Standarddatenbank des Benutzers her.By default, bcp.exe connects to the user's default database. Wenn -d Datenbankname und ein dreiteiliger Name (Datenbankname.schema.table, passed as the first parameter to bcp.exe) is specified, an error will occur because you cannot specify the database name twice.Wenn Datenbankname mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, fügen Sie keinen Leerraum zwischen -d und dem Datenbanknamen hinzu.If -d database_name and a three part name (database_name.schema.table, passed as the first parameter to bcp.exe) is specified, an error will occur because you cannot specify the database name twice.If database_name begins with a hyphen (-) or a forward slash (/), do not add a space between -d and the database name.

-e: err_Datei-e err_file
Gibt den vollständigen Pfad einer Fehlerdatei an, in der alle Zeilen gespeichert werden, die das bcp -Hilfsprogramm nicht von der Datei in die Datenbank übertragen kann.Specifies the full path of an error file used to store any rows that the bcp utility cannot transfer from the file to the database. Die durch den bcp -Befehl generierten Fehlermeldungen werden an die Arbeitsstation des Benutzers gesendet.Error messages from the bcp command go to the workstation of the user. Wenn diese Option nicht verwendet wird, wird keine Fehlerdatei erstellt.If this option is not used, an error file is not created.

Wenn Fehlerdatei mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -e und dem Fehlerdatei -Wert enthalten sein.If err_file begins with a hyphen (-) or a forward slash (/), do not include a space between -e and the err_file value.

-E -E
Gibt an, dass der oder die Identitätswerte in der importierten Datendatei für die Identitätsspalte verwendet werden sollen.Specifies that identity value or values in the imported data file are to be used for the identity column. Wenn -E nicht angegeben wird, werden die Identitätswerte für diese Spalte in der zu importierenden Datendatei ignoriert. SQL ServerSQL Server weist automatisch eindeutige Werte zu, basierend auf den Ausgangswerten und den inkrementellen Werten, die beim Erstellen der Tabelle angegeben wurden.If -E is not given, the identity values for this column in the data file being imported are ignored, and SQL ServerSQL Server automatically assigns unique values based on the seed and increment values specified during table creation.

Wenn die Datendatei keine Werte für die Identitätsspalte in der Tabelle oder Sicht enthält, geben Sie mithilfe einer Formatdatei an, dass die Identitätsspalte der Tabelle oder Sicht beim Importieren von Daten ausgelassen werden soll. SQL ServerSQL Server weist der Spalte automatisch eindeutige Werte zu.If the data file does not contain values for the identity column in the table or view, use a format file to specify that the identity column in the table or view should be skipped when importing data; SQL ServerSQL Server automatically assigns unique values for the column. Weitere Informationen finden Sie unter DBCC CHECKIDENT (Transact-SQL).For more information, see DBCC CHECKIDENT (Transact-SQL).

Für die Option -E sind besondere Berechtigungen erforderlich.The -E option has a special permissions requirement. Weitere Informationen finden Sie unter „Hinweise“ weiter unten in diesem Thema.For more information, see "Remarks" later in this topic.

-f format_file-f format_file
Gibt den vollständigen Pfad einer Formatdatei an.Specifies the full path of a format file. Die Bedeutung dieser Option hängt von der Umgebung ab, in der sie verwendet wird. Folgende Bedeutungen sind möglich:The meaning of this option depends on the environment in which it is used, as follows:

  • Wird -f mit der Option format verwendet, wird die angegebene Formatdatei für die angegebene Tabelle oder Sicht erstellt.If -f is used with the format option, the specified format_file is created for the specified table or view. Zum Erstellen einer XML-Formatdatei müssen Sie zudem die Option -x angeben.To create an XML format file, also specify the -x option. Weitere Informationen finden Sie unter Erstellen einer Formatdatei (SQL Server).For more information, see Create a Format File (SQL Server).

  • Wird -f mit der Option in oder out verwendet, ist eine bereits vorhandene Formatdatei erforderlich.If used with the in or out option, -f requires an existing format file.

    Hinweis

    Die Verwendung einer Formatdatei mit der Option in oder out ist optional.Using a format file in with the in or out option is optional. Fehlt die Option -f und wurde -n, -c, -woder -N nicht angegeben, werden Sie vom Befehl zur Angabe von Formatinformationen aufgefordert, und Sie erhalten die Möglichkeit, Ihre Antworten in einer Formatdatei (mit dem Standardnamen Bcp.fmt) zu speichern.In the absence of the -f option, if -n, -c, -w, or -N is not specified, the command prompts for format information and lets you save your responses in a format file (whose default file name is Bcp.fmt).

    Wenn Fehlerdatei mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -f und dem Fehlerdatei -Wert enthalten sein.If format_file begins with a hyphen (-) or a forward slash (/), do not include a space between -f and the format_file value.

-F first_row-F first_row
Gibt die Nummer der ersten Zeile an, die aus einer Tabelle exportiert oder von einer Datendatei importiert werden soll.Specifies the number of the first row to export from a table or import from a data file. Für diesen Parameter muss ein Wert größer als (>) 0, jedoch kleiner (<) oder gleich (=) der Gesamtanzahl der Zeilen angegeben werden.This parameter requires a value greater than (>) 0 but less than (<) or equal to (=) the total number rows. Fehlt dieser Parameter, wird standardmäßig die erste Zeile der Datei angenommen.In the absence of this parameter, the default is the first row of the file.

erste_Zeile kann eine positive ganze Zahl mit einem Wert bis zu 2^63-1 sein.first_row can be a positive integer with a value up to 2^63-1. -F erste_Zeile ist 1-basiert.-F first_row is 1-based.

-G-G
Diese Option wird vom Client beim Herstellen einer Verbindung mit Azure SQL-Datenbank oder Azure SQL-Datenbank verwendet, um anzugeben, dass der Benutzer mithilfe der Azure Active Directory-Authentifizierung authentifiziert werden soll.This switch is used by the client when connecting to Azure SQL Database or Azure SQL Data Warehouse to specify that the user be authenticated using Azure Active Directory authentication. Der Schalter-G erfordert Version 14.0.3008.27 oder höher.The -G switch requires version 14.0.3008.27 or later. Führen Sie „bcp -v“ aus, um die von Ihnen verwendete Version zu ermitteln.To determine your version, execute bcp -v. Weitere Informationen finden Sie unter verwenden Azure Active Directory-Authentifizierung für die Authentifizierung mit SQL-Datenbank oder SQL Data Warehouse.For more information, see Use Azure Active Directory Authentication for authentication with SQL Database or SQL Data Warehouse.

Wichtig

Die -G -Option gilt nur für Azure SQL-Datenbank und Azure Data Warehouse.The -G option only applies to Azure SQL Database and Azure Data Warehouse. AAD-integrierte und interaktive Authentifizierung wird unter Linux oder MacOS derzeit nicht unterstützt.AAD Integrated and Interactive Authentication is not currently supported on Linux or macOS.

Tipp

Zum Überprüfen, ob Ihre Version des Bcp-Unterstützung für Azure Active Directory-Authentifizierung (AAD)-Typ enthält Bcp-- (Bcp<Speicherplatz ><Dash ><Dash >) und stellen Sie sicher, dass: Password-g in der Liste angezeigt Verfügbare Argumente.To check if your version of bcp includes support for Azure Active Directory Authentication (AAD) type bcp -- (bcp<space><dash><dash>) and verify that you see -G in the list of available arguments.

  • Azure Active Directory-Benutzername und -Kennwort:Azure Active Directory Username and Password:

    Wenn Sie einen Azure Active Directory-Benutzernamen und das zugehörige Kennwort verwenden möchten, geben Sie die Option -G zusammen mit dem Benutzernamen und dem Kennwort an, indem Sie die Optionen -U und -P bereitstellen.When you want to use an Azure Active Directory user name and password, you can provide the -G option and also use the user name and password by providing the -U and -P options.

    Das folgende Beispiel exportiert die Daten mithilfe von Azure AD-Benutzername und Kennwort, in denen Benutzer und das Kennwort ist eine AAD-Anmeldeinformationen.The following example exports data using Azure AD Username and Password where user and password is an AAD credential. Im Beispiel wird die Tabelle exportiert bcptest aus Datenbank testdb aus Azure-Server aadserver.database.windows.net und speichert die Daten in der Datei c:\last\data1.dat:The example exports table bcptest from database testdb from Azure server aadserver.database.windows.net and stores the data in file c:\last\data1.dat:

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    

    Das folgende Beispiel importiert die Daten mithilfe von Azure AD-Benutzername und Kennwort, in denen Benutzer und das Kennwort ist eine AAD-Anmeldeinformationen.The following example imports data using Azure AD Username and Password where user and password is an AAD credential. Das Beispiel importiert die Daten aus Datei c:\last\data1.dat in Tabelle bcptest für die Datenbank testdb auf Azure-Server aadserver.database.windows.net mithilfe von Azure AD-Benutzername und Kennwort:The example imports data from file c:\last\data1.dat into table bcptest for database testdb on Azure server aadserver.database.windows.net using Azure AD User/Password:

    bcp bcptest in "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    
  • Integrierte Azure Active Directory-AuthentifizierungAzure Active Directory Integrated

    Wenn Sie die integrierte Azure Active Directory-Authentifizierung verwenden möchten, geben Sie die Option -G ohne Benutzername und Kennwort an.For Azure Active Directory Integrated authentication, provide the -G option without a user name or password. Diese Konfiguration wird davon ausgegangen, dass das aktuelle Windows-Benutzerkonto (das Konto, unter der Bcp-Befehl ausgeführt wird) in Azure AD verbunden ist:This configuration assumes that the current Windows user account (the account the bcp command is running under) is federated with Azure AD:

    Das folgende Beispiel exportiert die Daten mit integrierten Azure AD-Konto.The following example exports data using Azure AD Integrated account. Im Beispiel wird die Tabelle exportiert bcptest aus Datenbank testdb mithilfe von Azure AD integriert, von Azure-Server aadserver.database.windows.net und speichert die Daten in der Datei c:\last\data2.dat:The example exports table bcptest from database testdb using Azure AD Integrated from Azure server aadserver.database.windows.net and stores the data in file c:\last\data2.dat:

    bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    

    Das folgende Beispiel importiert die Daten mit integrierten Azure AD-auth. Das Beispiel importiert die Daten aus Datei c:\last\data2.txt in Tabelle bcptest für die Datenbank testdb auf Azure-Server aadserver.database.windows.net mit integrierten Azure AD-Authentifizierung:The following example imports data using Azure AD Integrated auth. The example imports data from file c:\last\data2.txt into table bcptest for database testdb on Azure server aadserver.database.windows.net using Azure AD Integrated auth:

    bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    
  • Azure Active Directory InteractiveAzure Active Directory Interactive

    Die interaktiven Azure AD-Authentifizierung für Azure SQL-Datenbank und SQL Data Warehouse können Sie eine interaktive Methode, die Unterstützung von Multi-Factor Authentication zu verwenden.The Azure AD Interactive authentication for Azure SQL Database and SQL Data Warehouse, allows you to use an interactive method supporting multi-factor authentication. Weitere Informationen finden Sie unter interaktive Active Directory-Authentifizierung.For additional information, see Active Directory Interactive Authentication.

    Interaktive Azure AD erfordert Bcp Version 15.0.1000.34 oder höher sowie ODBC, Version 17.2 oder höher.Azure AD interactive requires bcp version 15.0.1000.34 or later as well as ODBC version 17.2 or later.

    Geben Sie zum Aktivieren der interaktiven Authentifizierung -G-Option mit Benutzernamen (-U), ohne dass ein Kennwort.To enable interactive authentication, provide -G option with user name (-U) only, without a password.

    Das folgende Beispiel exportiert die Daten mithilfe von Azure AD interaktiven Modus, der angibt, Benutzername, wobei der Benutzer eine AAD-Kontos darstellt.The following example exports data using Azure AD interactive mode indicating username where user represents an AAD account. Dies ist das gleiche Beispiel, das im vorherigen Abschnitt verwendet: Azure Active Directory-Benutzernamen und das Kennwort.This is the same example used in the previous section: Azure Active Directory Username and Password.

    Im interaktiver Modus erfordert ein Kennwort manuell eingegeben werden, oder für Konten, die Multi-Factor Authentication aktiviert ist, führen Ihre konfigurierten MFA-Authentifizierungsmethode.Interactive mode requires a password to be manually entered, or for accounts with multi-factor authentication enabled, complete your configured MFA authentication method.

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com 
    

    Für den Fall, dass Azure AD-Benutzer ist eine Domäne im Verbund eine mit Windows-Konto an, der Benutzernamen ein, die in der Befehlszeile erforderlich enthält die Domänenkonto (z. B. joe@contoso.com siehe unten):In case an Azure AD user is a domain federated one using Windows account, the user name required in the command line, contains its domain account (for example, joe@contoso.com see below):

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U joe@contoso.com 
    

    Die Gast-Benutzeralias wird verwendet, wenn Gastbenutzer in einer bestimmten Azure AD vorhanden sind, sind Teil einer Gruppe, die in SQL-Datenbank vorhanden sind, die über Berechtigungen zum Ausführen des Bcp-Befehls für die Datenbank verfügt (z. B. keith0@adventureworks.com).If guest users exist in a specific Azure AD and are part of a group that exist in SQL DB that has database permissions to execute the bcp command, their guest user alias is used (for example, keith0@adventureworks.com).

-h "load hints[ ,... n]": Gibt den oder die Hinweise an, die beim Massenimport von Daten in eine Tabelle oder Sicht verwendet werden sollen.-h "load hints[ ,... n]" Specifies the hint or hints to be used during a bulk import of data into a table or view.

  • ORDER(column[ASC | DESC] [,...n])**ORDER(column[ASC | DESC] [,...n])**
    Die Sortierreihenfolge der Daten in der Datendatei.The sort order of the data in the data file. Die Leistung des Massenkopierens wird verbessert, wenn die zu importierenden Daten entsprechend dem gruppierten Index der Tabelle (falls vorhanden) sortiert sind.Bulk import performance is improved if the data being imported is sorted according to the clustered index on the table, if any. Wenn die Datendatei in einer anderen Reihenfolge, d. h. nicht nach einem gruppierten Indexschlüssel sortiert ist, oder wenn es keinen gruppierten Index für die Tabelle gibt, wird die ORDER-Klausel ignoriert.If the data file is sorted in a different order, that is other than the order of a clustered index key, or if there is no clustered index on the table, the ORDER clause is ignored. Die angegebenen Spaltennamen müssen gültige Spaltennamen in der Zieltabelle sein.The column names supplied must be valid column names in the destination table. Standardmäßig geht bcp davon aus, dass die Datendatei nicht sortiert ist.By default, bcp assumes the data file is unordered. Beim optimierten Massenimport wird in SQL ServerSQL Server auch überprüft, ob die importierten Daten sortiert sind.For optimized bulk import, SQL ServerSQL Server also validates that the imported data is sorted.

  • ROWS_PER_BATCH = bbROWS_PER_BATCH = bb
    Die Anzahl von Datenzeilen pro Batch (als bb).Number of rows of data per batch (as bb). Dieser Hinweis wird verwendet, wenn -b nicht angegeben wird. Er bewirkt, dass die gesamte Datendatei in einer einzigen Transaktion an den Server gesendet wird.Used when -b is not specified, resulting in the entire data file being sent to the server as a single transaction. Der Server optimiert das Massenladen entsprechend dem Wert von bb.The server optimizes the bulk load according to the value bb. Standardmäßig ist ROWS_PER_BATCH unbekannt.By default, ROWS_PER_BATCH is unknown.

  • KILOBYTES_PER_BATCH = ccKILOBYTES_PER_BATCH = cc
    Die ungefähre Anzahl von Kilobytes (KB) an Daten pro Batch (als cc).Approximate number of kilobytes of data per batch (as cc). In der Standardeinstellung ist KILOBYTES_PER_BATCH unbekannt.By default, KILOBYTES_PER_BATCH is unknown.

  • TABLOCKTABLOCK
    Gibt an, dass eine Massenupdatesperre auf Tabellenebene für die Dauer des Massenladens aktiviert wird. Andernfalls wird eine Sperre auf Zeilenebene aktiviert.Specifies that a bulk update table-level lock is acquired for the duration of the bulk load operation; otherwise, a row-level lock is acquired. Dieser Hinweis verbessert die Leistung beträchtlich, da weniger Sperrkonflikte für die Tabelle auftreten, wenn diese während des Massenkopiervorgangs gesperrt wird.This hint significantly improves performance because holding a lock for the duration of the bulk-copy operation reduces lock contention on the table. Eine Tabelle kann gleichzeitig von mehreren Clients geladen werden, wenn die Tabelle keine Indizes aufweist und TABLOCK angegeben ist.A table can be loaded concurrently by multiple clients if the table has no indexes and TABLOCK is specified. Standardmäßig wird das Sperrverhalten durch die Tabellenoption table lock on bulk loadbestimmt.By default, locking behavior is determined by the table option table lock on bulk load.

    Hinweis

    Wenn die Zieltabelle ein gruppierter Columnstore-Index ist, ist der TABLOCK-Hinweis zum Laden durch mehrere Clients parallel nicht erforderlich, da jedem parallel ausgeführten Thread eine eigene Zeilengruppe im Index zugewiesen wird, in die er Daten lädt.If the target table is clustered columnstore index, TABLOCK hint is not required for loading by multiple concurrent clients because each concurrent thread is assigned a separate rowgroup within the index and loads data into it. Details finden Sie in den Grundlagenthemen zum Columnstore-Index.Please refer to columnstore index conceptual topics for details,

    CHECK_CONSTRAINTSCHECK_CONSTRAINTS
    Gibt an, dass alle Einschränkungen, die für die Zieltabelle oder -sicht gelten, während des Massenimportvorgangs überprüft werden müssen.Specifies that all constraints on the target table or view must be checked during the bulk-import operation. Ohne den CHECK_CONSTRAINTS-Hinweis werden alle CHECK- und FOREIGN KEY-Einschränkungen ignoriert. Nach dem Vorgang wird die Einschränkung für die Tabelle als nicht vertrauenswürdig markiert.Without the CHECK_CONSTRAINTS hint, any CHECK and FOREIGN KEY constraints are ignored, and after the operation the constraint on the table is marked as not-trusted.

    Hinweis

    UNIQUE-, PRIMARY KEY- und NOT NULL-Einschränkungen werden immer erzwungen.UNIQUE, PRIMARY KEY, and NOT NULL constraints are always enforced.

    Zu einem bestimmten Zeitpunkt sollten Sie allerdings die Einschränkungen für die gesamte Tabelle überprüfen.At some point, you will need to check the constraints on the entire table. Wenn die Tabelle vor dem Massenimportvorgang nicht leer war, überschreitet der Aufwand der erneuten Überprüfung möglicherweise denjenigen der Anwendung von CHECK-Einschränkungen auf die inkrementellen Daten.If the table was nonempty before the bulk import operation, the cost of revalidating the constraint may exceed the cost of applying CHECK constraints to the incremental data. Daher empfiehlt es sich normalerweise, die Einschränkungsüberprüfung beim inkrementellen Massenimportieren zu aktivieren.Therefore, we recommend that normally you enable constraint checking during an incremental bulk import.

    Die Deaktivierung von Einschränkungen (das Standardverhalten) kann z. B. erwünscht sein, wenn die Eingabedaten Zeilen enthalten, die Einschränkungen verletzen.A situation in which you might want constraints disabled (the default behavior) is if the input data contains rows that violate constraints. Wenn CHECK-Einschränkungen deaktiviert sind, können Sie die Daten importieren und anschließend Transact-SQLTransact-SQL -Anweisungen verwenden, um ungültige Daten zu entfernen.With CHECK constraints disabled, you can import the data and then use Transact-SQLTransact-SQL statements to remove data that is not valid.

    Hinweis

    bcp erzwingt nun Datenüberprüfungen, die dazu führen können, dass Skripts einen Fehler erzeugen, wenn sie für ungültige Daten in einer Datendatei ausgeführt werden.bcp now enforces data validation and data checks that might cause scripts to fail if they are executed on invalid data in a data file.

    Hinweis

    Der Schalter -m max_errors gilt nicht für die Einschränkungsüberprüfung.The -m max_errors switch does not apply to constraint checking.

  • FIRE_TRIGGERSFIRE_TRIGGERS
    Wird mit dem in -Argument angegeben und bewirkt, dass jeder INSERT-Trigger, der für die Zieltabelle definiert ist, während des Massenkopiervorgangs ausgeführt wird.Specified with the in argument, any insert triggers defined on the destination table will run during the bulk-copy operation. Wenn FIRE_TRIGGERS nicht angegeben wird, werden keine INSERT-Trigger ausgeführt.If FIRE_TRIGGERS is not specified, no insert triggers will run. FIRE_TRIGGERS wird für die Argumente out, queryoutund format ignoriert.FIRE_TRIGGERS is ignored for the out, queryout, and format arguments.

-i input_file-i input_file
Gibt den Namen einer Antwortdatei an, die für jedes Datenfeld die Antworten auf die Fragen der Eingabeaufforderung enthält, wenn ein Massenkopiervorgang im interaktiven Modus ausgeführt wird (-n, -c, -woder -N wurde nicht angegeben).Specifies the name of a response file, containing the responses to the command prompt questions for each data field when a bulk copy is being performed using interactive mode (-n, -c, -w, or -N not specified).

Wenn Eingabedatei mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -i und dem Eingabedatei -Wert enthalten sein.If input_file begins with a hyphen (-) or a forward slash (/), do not include a space between -i and the input_file value.

-k-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.Specifies that empty columns should retain a null value during the operation, rather than have any default values for the columns inserted. Weitere Informationen finden Sie unter Beibehalten von NULL-Werten oder Verwenden von Standardwerten während des Massenimports (SQL Server).For more information, see Keep Nulls or Use Default Values During Bulk Import (SQL Server).

-K application_intent -K application_intent
Deklariert den Arbeitsauslastungstyp der Anwendung beim Herstellen einer Verbindung mit einem Server.Declares the application workload type when connecting to a server. Der einzig mögliche Wert ist ReadOnly.The only value that is possible is ReadOnly. Wenn -K nicht angegeben wird, unterstützt das bcp-Hilfsprogramm keine Konnektivität zu einem sekundären Replikat in einer Always On-Verfügbarkeitsgruppe.If -K is not specified, the bcp utility will not support connectivity to a secondary replica in an Always On availability group. Weitere Informationen finden Sie unter Aktive sekundäre Replikate: Lesbare sekundäre Replikate (Always On-Verfügbarkeitsgruppen)wichtig sind.For more information, see Active Secondaries: Readable Secondary Replicas (Always On Availability Groups).

-L last_row-L last_row
Gibt die Nummer der letzten Zeile an, die aus einer Tabelle exportiert oder von einer Datendatei importiert werden soll.Specifies the number of the last row to export from a table or import from a data file. Für diesen Parameter muss ein Wert größer als (>) 0, jedoch kleiner (<) oder gleich (=) der Nummer der letzten Zeile angegeben werden.This parameter requires a value greater than (>) 0 but less than (<) or equal to (=) the number of the last row. Fehlt dieser Parameter, wird standardmäßig die letzte Zeile der Datei angenommen.In the absence of this parameter, the default is the last row of the file.

letzte_Zeile kann eine positive ganze Zahl mit einem Wert bis zu 2^63-1 sein.last_row can be a positive integer with a value up to 2^63-1.

-m max_errors-m max_errors
Gibt an, wie viele Syntaxfehler maximal auftreten können, bevor der bcp -Vorgang abgebrochen wird.Specifies the maximum number of syntax errors that can occur before the bcp operation is canceled. Ein Syntaxfehler setzt einen Fehler bei der Datenkonvertierung in den Zieldatentyp voraus.A syntax error implies a data conversion error to the target data type. Der Wert von max_Fehler schließt alle Fehler aus, die nur auf dem Server erkannt werden können, z.B. Einschränkungsverletzungen.The max_errors total excludes any errors that can be detected only at the server, such as constraint violations.

Eine Zeile, die vom Hilfsprogramm bcp nicht kopiert werden kann, wird ignoriert und als ein Fehler gezählt.A row that cannot be copied by the bcp utility is ignored and is counted as one error. Wenn diese Option nicht enthalten ist, wird der Standardwert 10 verwendet.If this option is not included, the default is 10.

Hinweis

Die Option -m gilt nicht für die Konvertierung der Datentypen money oder bigint .The -m option also does not apply to converting the money or bigint data types.

-n-n
Führt das Massenkopieren mithilfe der systemeigenen (Datenbank-)Datentypen der Daten aus.Performs the bulk-copy operation using the native (database) data types of the data. Diese Option fordert für keines der Felder zu einer Eingabe auf; es werden die systemeigenen Werte verwendet.This option does not prompt for each field; it uses the native values.

Weitere Informationen finden Sie unter Verwenden des nativen Formats zum Importieren oder Exportieren von Daten (SQL Server).For more information, see Use Native Format to Import or Export Data (SQL Server).

-N-N
Führt den Massenkopiervorgang mithilfe der systemeigenen (Datenbank-)Datentypen für Daten, die keinen Zeichendatentyp haben, und mithilfe von Unicode-Zeichen für Zeichendaten aus.Performs the bulk-copy operation using the native (database) data types of the data for noncharacter data, and Unicode characters for character data. Diese Option bietet ein besseres Leistungsverhalten als die Option -w und sollte verwendet werden, um Daten mithilfe einer Datendatei zwischen SQL ServerSQL Server -Instanzen zu übertragen.This option offers a higher performance alternative to the -w option, and is intended for transferring data from one instance of SQL ServerSQL Server to another using a data file. Die Option fordert nicht für jedes Feld zu einer Eingabe auf.It does not prompt for each field. Verwenden Sie diese Option, wenn Sie Daten mit erweiterten ANSI-Zeichen übertragen und die Leistungsvorteile des einheitlichen Modus nutzen möchten.Use this option when you are transferring data that contains ANSI extended characters and you want to take advantage of the performance of native mode.

Weitere Informationen finden Sie unter Verwenden des nativen Unicode-Formats zum Importieren oder Exportieren von Daten (SQL Server).For more information, see Use Unicode Native Format to Import or Export Data (SQL Server).

Wenn Sie Daten unter Verwendung von bcp.exe mit -N exportieren und dann importieren und eine Spalte mit Nicht-Unicode-Zeichen fester Länge vorliegt (z.B.char(10)), wird möglicherweise eine Warnung über abgeschnittene Daten angezeigt.If you export and then import data to the same table schema by using bcp.exe with -N, you might see a truncation warning if there is a fixed length, non-Unicode character column (for example, char(10)).

Die Warnung kann ignoriert werden.The warning can be ignored. Eine Möglichkeit zum Auflösen dieser Warnung besteht darin, -n anstelle von -Nzu verwenden.One way to resolve this warning is to use -n instead of -N.

-o Ausgabe_Datei-o output_file
Gibt den Namen einer Datei an, in die die Ausgabe geschrieben wird, die von der Eingabeaufforderung umgeleitet wurde.Specifies the name of a file that receives output redirected from the command prompt.

Wenn Ausgabedatei mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -o und dem Ausgabedatei -Wert enthalten sein.If output_file begins with a hyphen (-) or a forward slash (/), do not include a space between -o and the output_file value.

-P password-P password
Gibt das Kennwort für die Anmelde-ID an.Specifies the password for the login ID. Wenn diese Option nicht verwendet wird, fordert der Befehl bcp zur Eingabe eines Kennworts auf.If this option is not used, the bcp command prompts for a password. Wenn diese Option am Ende der Befehlszeile ohne Kennwort verwendet wird, verwendet bcp das Standardkennwort (NULL).If this option is used at the end of the command prompt without a password, bcp uses the default password (NULL).

Wichtig

Verwenden Sie kein leeres Kennwort.Do not use a blank password. Verwenden Sie ein sicheres Kennwort.Use a strong password.

Zum Maskieren des Kennworts sollten Sie die Option -P nicht in Verbindung mit der Option -U angeben.To mask your password, do not specify the -P option along with the -U option. Drücken Sie stattdessen nach der Angabe von bcp mit der Option -U und anderen Schaltern (geben Sie -Pnicht an) die EINGABETASTE. Sie werden daraufhin zur Angabe eines Kennworts aufgefordert.Instead, after specifying bcp along with the -U option and other switches (do not specify -P), press ENTER, and the command will prompt you for a password. Durch diese Methode wird sichergestellt, dass das Kennwort bei der Eingabe maskiert wird.This method ensures that your password will be masked when it is entered.

Wenn Kennwort mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -P und dem Kennwort -Wert enthalten sein.If password begins with a hyphen (-) or a forward slash (/), do not add a space between -P and the password value.

-q-q
Führt die SET QUOTED_IDENTIFIERS ON-Anweisung in der Verbindung zwischen dem bcp -Hilfsprogramm und einer SQL ServerSQL Server-Instanz aus.Executes the SET QUOTED_IDENTIFIERS ON statement in the connection between the bcp utility and an instance of SQL ServerSQL Server. Verwenden Sie diese Option, wenn Sie einen Datenbank-, Besitzer-, Tabellen- oder Sichtnamen angeben möchten, der ein Leerzeichen oder ein einfaches Anführungszeichen enthält.Use this option to specify a database, owner, table, or view name that contains a space or a single quotation mark. Schließen Sie den gesamten dreiteiligen Tabellen- oder Sichtnamen in Anführungszeichen ("") ein.Enclose the entire three-part table or view name in quotation marks ("").

Um einen Datenbanknamen anzugeben, der ein Leerzeichen oder ein einfaches Anführungszeichen enthält, müssen Sie die Option -q verwenden.To specify a database name that contains a space or single quotation mark, you must use the -q option.

-q gilt nicht für Werte, die an -dübergeben wurden.-q does not apply to values passed to -d.

Weitere Informationen finden Sie unter Hinweiseweiter unten in diesem Thema.For more information, see Remarks, later in this topic.

-R Zeile_Begriff-r row_term
Gibt das Zeilenabschlusszeichen an.Specifies the row terminator. Der Standardwert ist \n (Zeilenumbruchzeichen).The default is \n (newline character). Mit diesem Parameter können Sie das standardmäßige Zeilenabschlusszeichen überschreiben.Use this parameter to override the default row terminator. Weitere Informationen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).

Wenn Sie das Zeilenabschlusszeichen in Hexadezimalschreibweise in einem bcp.exe-Befehl angeben, wird der Wert bei 0x00 abgeschnitten.If you specify the row terminator in hexadecimal notation in a bcp.exe command, the value will be truncated at 0x00. Wenn Sie 0x410041 angeben, wird z. B. 0x41 verwendet.For example, if you specify 0x410041, 0x41 will be used.

Wenn Zeilenabschluss mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -r und dem Zeilenabschluss -Wert enthalten sein.If row_term begins with a hyphen (-) or a forward slash (/), do not include a space between -r and the row_term value.

-R-R
Gibt an, dass beim Massenkopieren von Währungs-, Datums- und Zeitdaten in SQL ServerSQL Server das Länderformat verwendet wird, das durch die Gebietsschemaeinstellung des Clientcomputers definiert wird.Specifies that currency, date, and time data is bulk copied into SQL ServerSQL Server using the regional format defined for the locale setting of the client computer. Standardmäßig werden Ländereinstellungen ignoriert.By default, regional settings are ignored.

-S server_name [\instance_name]: Gibt die SQL ServerSQL Server-Instanz an, mit der eine Verbindung hergestellt werden soll.-S server_name [\instance_name] Specifies the instance of SQL ServerSQL Server to which to connect. Wenn kein Server angegeben wird, stellt das Hilfsprogramm bcp eine Verbindung mit der Standardinstanz von SQL ServerSQL Server auf dem lokalen Computer her.If no server is specified, the bcp utility connects to the default instance of SQL ServerSQL Server on the local computer. Diese Option ist erforderlich, wenn bcp von einem Remotecomputer im Netzwerk oder von einer lokalen benannten Instanz ausgeführt wird.This option is required when a bcp command is run from a remote computer on the network or a local named instance. Um eine Verbindung mit der Standardinstanz von SQL ServerSQL Server auf einem Server herzustellen, geben Sie lediglich Servernamean.To connect to the default instance of SQL ServerSQL Server on a server, specify only server_name. Wenn Sie eine Verbindung mit der benannten Instanz von SQL ServerSQL Server herstellen möchten, geben Sie server_name\instance_name an.To connect to a named instance of SQL ServerSQL Server, specify server_name\instance_name.

-t Feld_Begriff-t field_term
Gibt das Feldabschlusszeichen an.Specifies the field terminator. Der Standardwert ist \t (Tabstoppzeichen).The default is \t (tab character). Mit diesem Parameter können Sie das standardmäßige Feldabschlusszeichen überschreiben.Use this parameter to override the default field terminator. Weitere Informationen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).

Wenn Sie das Feldabschlusszeichen in Hexadezimalschreibweise in einem bcp.exe-Befehl angeben, wird der Wert bei 0x00 abgeschnitten.If you specify the field terminator in hexadecimal notation in a bcp.exe command, the value will be truncated at 0x00. Wenn Sie 0x410041 angeben, wird z. B. 0x41 verwendet.For example, if you specify 0x410041, 0x41 will be used.

Wenn Feldabschluss mit einem Bindestrich (-) oder einem Schrägstrich (/) beginnt, darf kein Leerzeichen zwischen -r und dem Feldabschluss -Wert enthalten sein.If field_term begins with a hyphen (-) or a forward slash (/), do not include a space between -t and the field_term value.

-T-T
Gibt an, dass das Hilfsprogramm bcp die Verbindung mit SQL ServerSQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Die Anmeldeinformationen des Netzwerkbenutzers ( Anmelde-IDund Kennwort ) sind nicht erforderlich.The security credentials of the network user, login_id, and password are not required. Wenn -T nicht angegeben wird, müssen Sie -U und -P angeben, um sich erfolgreich anzumelden.If -T is not specified, you need to specify -U and -P to successfully log in.

Wichtig

Wenn das Hilfsprogramm bcp die Verbindung mit SQL ServerSQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt, verwenden Sie die Option -T (vertrauenswürdige Verbindung) anstelle der Kombination aus Benutzername und Kennwort .When the bcp utility is connecting to SQL ServerSQL Server with a trusted connection using integrated security, use the -T option (trusted connection) instead of the user name and password combination. Wenn das Hilfsprogramm bcp eine Verbindung mit SQL-Datenbank oder SQL Data Warehouse herstellt, wird die Windows-Authentifizierung oder Azure Active Directory-Authentifizierung nicht unterstützt.When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not supported. Verwenden Sie die Optionen -U und -P .Use the -U and -P options.

-U login_id-U login_id
Gibt die Anmelde-ID an, die zum Herstellen einer Verbindung mit SQL ServerSQL Serververwendet wird.Specifies the login ID used to connect to SQL ServerSQL Server.

Wichtig

Wenn das Hilfsprogramm bcp die Verbindung mit SQL ServerSQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt, verwenden Sie die Option -T (vertrauenswürdige Verbindung) anstelle der Kombination aus Benutzername und Kennwort .When the bcp utility is connecting to SQL ServerSQL Server with a trusted connection using integrated security, use the -T option (trusted connection) instead of the user name and password combination. Wenn das Hilfsprogramm bcp eine Verbindung mit SQL-Datenbank oder SQL Data Warehouse herstellt, wird die Windows-Authentifizierung oder Azure Active Directory-Authentifizierung nicht unterstützt.When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not supported. Verwenden Sie die Optionen -U und -P .Use the -U and -P options.

-v-v
Meldet die Versionsnummer und Copyrightinformationen des bcp -Hilfsprogramms.Reports the bcp utility version number and copyright.

-V (80 | 90 | 100 | 110 | 120 | 130 )-V (80 | 90 | 100 | 110 | 120 | 130 )
Führt den Massenkopiervorgang mithilfe von Datentypen aus einer früheren Version von SQL ServerSQL Serveraus.Performs the bulk-copy operation using data types from an earlier version of SQL ServerSQL Server. Diese Option fordert nicht für jedes Feld zu einer Eingabe auf. Es werden die Standardwerte verwendet.This option does not prompt for each field; it uses the default values.

80 = SQL Server 2000 (8.x)SQL Server 2000 (8.x)80 = SQL Server 2000 (8.x)SQL Server 2000 (8.x)

90 = SQL Server 2005SQL Server 200590 = SQL Server 2005SQL Server 2005

100 = SQL Server 2008SQL Server 2008 und SQL Server 2008 R2SQL Server 2008 R2100 = SQL Server 2008SQL Server 2008 and SQL Server 2008 R2SQL Server 2008 R2

110 = SQL Server 2012 (11.x)SQL Server 2012 (11.x)110 = SQL Server 2012 (11.x)SQL Server 2012 (11.x)

120 = SQL Server 2014 (12.x)SQL Server 2014 (12.x)120 = SQL Server 2014 (12.x)SQL Server 2014 (12.x)

130 = SQL Server 2016 (13.x)SQL Server 2016 (13.x)130 = SQL Server 2016 (13.x)SQL Server 2016 (13.x)

Verwenden Sie die Option "-V80", um beispielsweise Daten für Typen zu erstellen, die nicht von SQL Server 2000 (8.x)SQL Server 2000 (8.x)unterstützt werden, jedoch in spätere Versionen von SQL ServerSQL Serverintegriert wurden.For example, to generate data for types not supported by SQL Server 2000 (8.x)SQL Server 2000 (8.x), but were introduced in later versions of SQL ServerSQL Server, use the -V80 option.

Weitere Informationen finden Sie unter Importieren von Daten aus früheren SQL Server-Versionen im nativen Format oder im Zeichenformat.For more information, see Import Native and Character Format Data from Earlier Versions of SQL Server.

-w-w
Führt den Massenkopiervorgang mithilfe von Unicode-Zeichen aus.Performs the bulk copy operation using Unicode characters. Diese Option fordert für keines der Felder zu einer Eingabe auf. Es werden folgende Einstellungen verwendet: nchar als Speichertyp, keine Präfixe, \t (Tabstoppzeichen) als Feldtrennzeichen und \n (Zeilenumbruchzeichen) als Zeilenabschlusszeichen.This option does not prompt for each field; it uses nchar as the storage type, no prefixes, \t (tab character) as the field separator, and \n (newline character) as the row terminator. -w ist nicht kompatibel mit -c.-w is not compatible with -c.

Weitere Informationen finden Sie unter Verwenden des Unicode-Zeichenformats zum Importieren und Exportieren von Daten (SQL Server).For more information, see Use Unicode Character Format to Import or Export Data (SQL Server).

-x-x
Bei Verwendung mit den Optionen format und -f Formatdatei wird anstelle der standardmäßigen Nicht-XML-Formatdatei eine XML-basierte Formatdatei generiert.Used with the format and -f format_file options, generates an XML-based format file instead of the default non-XML format file. Beim Importieren oder Exportieren von Daten hat -x keine Funktion.The -x does not work when importing or exporting data. Wird die Option weder mit format noch mit -f Formatdateiverwendet, wird ein Fehler generiert.It generates an error if used without both format and -f format_file.

HinweiseRemarks

Der bcp 13.0-Client wird bei der Installation der MicrosoftMicrosoft SQL Server 2017SQL Server 2017 -Tools installiert.The bcp 13.0 client is installed when you install MicrosoftMicrosoft SQL Server 2017SQL Server 2017 tools. Wenn sowohl Tools für SQL Server 2017SQL Server 2017 als auch für eine frühere Version von SQL ServerSQL Serverinstalliert sind, verwenden Sie, abhängig von der Reihenfolge der Werte in der PATH-Umgebungsvariablen, möglicherweise den früheren bcp -Client anstelle des bcp 13.0-Clients.If tools are installed for both SQL Server 2017SQL Server 2017 and an earlier version of SQL ServerSQL Server, depending on the order of values of the PATH environment variable, you might be using the earlier bcp client instead of the bcp 13.0 client. Diese Umgebungsvariable definiert die Verzeichnisse, in denen von Windows nach ausführbaren Dateien gesucht wird.This environment variable defines the set of directories used by Windows to search for executable files. Führen Sie an der Windows-Befehlszeile den Befehl bcp /v aus, um zu ermitteln, welche Version Sie verwenden.To discover which version you are using, run the bcp /v command at the Windows Command Prompt. Informationen zum Festlegen des Befehlspfads in der PATH-Umgebungsvariablen finden Sie in der Windows-Hilfe.For information about how to set the command path in the PATH environment variable, see Windows Help.

Das Hilfsprogramm „bcp“ kann auch separat aus dem Microsoft SQL Server 2016 Feature Pack heruntergeladen werden.The bcp utility can also be downloaded separately from the Microsoft SQL Server 2016 Feature Pack. Wählen Sie entweder ENU\x64\MsSqlCmdLnUtils.msi oder ENU\x86\MsSqlCmdLnUtils.msiaus.Select either ENU\x64\MsSqlCmdLnUtils.msi or ENU\x86\MsSqlCmdLnUtils.msi.

XML-Formatdateien werden nur unterstützt, wenn die SQL ServerSQL Server -Tools zusammen mit SQL ServerSQL Server Native Client installiert werden.XML format files are only supported when SQL ServerSQL Server tools are installed together with SQL ServerSQL Server Native Client.

Informationen zum Speicherort und zum Verwenden des Hilfsprogramms bcp sowie zu den für Eingabeaufforderungs-Hilfsprogramme geltenden Syntaxkonventionen finden Sie unter Referenz zum Eingabeaufforderungs-Hilfsprogramm &#40;Datenbank-Engine&#41;.For information about where to find or how to run the bcp utility and about the command prompt utilities syntax conventions, see Command Prompt Utility Reference (Database Engine).

Informationen zum Vorbereiten von Daten für Massenimport- oder Massenexportvorgänge finden Sie unter Vorbereiten von Daten für den Massenexport oder -import (SQL Server).For information on preparing data for bulk import or export operations, see Prepare Data for Bulk Export or Import (SQL Server).

Informationen dazu, wann Zeileneinfügevorgänge, die durch den Massenimport ausgeführt werden, im Transaktionsprotokoll protokolliert werden, finden Sie unter Voraussetzungen für die minimale Protokollierung beim Massenimport.For information about when row-insert operations that are performed by bulk import are logged in the transaction log, see Prerequisites for Minimal Logging in Bulk Import.

Systemeigene DatendateiunterstützungNative Data File Support

In SQL Server 2017SQL Server 2017unterstützt das bcp -Hilfsprogramm nur native Datendateien, die mit SQL Server 2000 (8.x)SQL Server 2000 (8.x), SQL Server 2005SQL Server 2005, SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2und SQL Server 2012 (11.x)SQL Server 2012 (11.x)kompatibel sind.In SQL Server 2017SQL Server 2017, the bcp utility supports native data files compatible with SQL Server 2000 (8.x)SQL Server 2000 (8.x), SQL Server 2005SQL Server 2005, SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2, and SQL Server 2012 (11.x)SQL Server 2012 (11.x).

Berechnete Spalten und Zeitstempel-SpaltenComputed Columns and timestamp Columns

In der zu importierenden Datendatei enthaltene Werte für berechnete oder timestamp -Spalten werden ignoriert. SQL ServerSQL Server weist Werte automatisch zu.Values in the data file being imported for computed or timestamp columns are ignored, and SQL ServerSQL Server automatically assigns values. Wenn die Datendatei keine Werte für die berechneten oder timestamp -Spalten der Tabelle enthält, geben Sie mithilfe einer Formatdatei an, dass die berechneten oder timestamp -Spalten beim Importieren von Daten ausgelassen werden sollen. SQL ServerSQL Server weist diesen Spalten automatisch Werte zu.If the data file does not contain values for the computed or timestamp columns in the table, use a format file to specify that the computed or timestamp columns in the table should be skipped when importing data; SQL ServerSQL Server automatically assigns values for the column.

Berechnete und timestamp -Spalten werden wie gewohnt aus SQL ServerSQL Server in eine Datendatei massenkopiert.Computed and timestamp columns are bulk copied from SQL ServerSQL Server to a data file as usual.

Angeben von Bezeichnern mit Leerzeichen oder AnführungszeichenSpecifying Identifiers That Contain Spaces or Quotation Marks

SQL ServerSQL Server -Bezeichner können Zeichen wie z.B. eingebettete Leerzeichen und Anführungszeichen enthalten.identifiers can include characters such as embedded spaces and quotation marks. Diese Bezeichner müssen folgendermaßen behandelt werden:Such identifiers must be treated as follows:

  • Wenn Sie an der Eingabeaufforderung einen Bezeichner oder Dateinamen angeben, der ein Leerzeichen oder ein Anführungszeichen enthält, müssen Sie den Bezeichner in Anführungszeichen ("") einschließen.When you specify an identifier or file name that includes a space or quotation mark at the command prompt, enclose the identifier in quotation marks ("").

    Mit dem Befehl bcp out wird beispielsweise die Datendatei Currency Types.daterstellt:For example, the following bcp out command creates a data file named Currency Types.dat:

    bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c  
    
  • Sie müssen die Option -q verwenden, um einen Datenbanknamen anzugeben, der ein Leerzeichen oder Anführungszeichen enthält.To specify a database name that contains a space or quotation mark, you must use the -q option.

  • Bei Besitzer-, Tabellen- oder Sichtnamen, die eingebettete Leerzeichen oder Anführungszeichen enthalten, ist Folgendes möglich:For owner, table, or view names that contain embedded spaces or quotation marks, you can either:

    • Angeben der Option -q .Specify the -q option, or

    • Einschließen des Besitzer-, Tabellen- oder Sichtnamens in eckige Klammern ([]) innerhalb der Anführungszeichen.Enclose the owner, table, or view name in brackets ([]) inside the quotation marks.

DatenüberprüfungData Validation

bcp erzwingt nun Datenüberprüfungen, die dazu führen können, dass Skripts einen Fehler erzeugen, wenn sie für ungültige Daten in einer Datendatei ausgeführt werden.bcp now enforces data validation and data checks that might cause scripts to fail if they are executed on invalid data in a data file. So wird durch bcp jetzt Folgendes überprüft:For example, bcp now verifies that:

  • Die native Darstellung der Datentypen float oder real ist gültig.The native representation of float or real data types are valid.

  • Unicode-Daten besitzen eine gerade Bytelänge.Unicode data has an even-byte length.

    Formulare mit ungültigen Daten, die in früheren Versionen von SQL ServerSQL Server noch massenimportiert werden konnten, werden nun möglicherweise nicht mehr geladen. In früheren Versionen trat der Fehler erst auf, wenn ein Client versuchte, auf die ungültigen Daten zuzugreifen.Forms of invalid data that could be bulk imported in earlier versions of SQL ServerSQL Server might fail to load now; whereas, in earlier versions, the failure did not occur until a client tried to access the invalid data. Durch die zusätzliche Überprüfung werden überraschende Ergebnisse beim Abfragen der Daten nach dem Massenladen minimiert.The added validation minimizes surprises when querying the data after bulk load.

Massenexportieren und -importieren von SQLXML-DokumentenBulk Exporting or Importing SQLXML Documents

Verwenden Sie in der Formatdatei einen der folgenden Datentypen für den Massenexport oder -import von SQLXML-Daten.To bulk export or import SQLXML data, use one of the following data types in your format file.

DatentypData type WirkungEffect
SQLCHAR oder SQLVARYCHARSQLCHAR or SQLVARYCHAR Die Daten werden in der Clientcodepage gesendet bzw. in der durch die Sortierung implizierten Codeseite.The data is sent in the client code page or in the code page implied by the collation). Der Effekt ist derselbe, als wenn der Schalter -c ohne eine Formatdatei angegeben wird.The effect is the same as specifying the -c switch without specifying a format file.
SQLNCHAR oder SQLNVARCHARSQLNCHAR or SQLNVARCHAR Die Daten werden im Unicode-Format gesendet.The data is sent as Unicode. Der Effekt ist derselbe, als wenn der Schalter -w ohne eine Formatdatei angegeben wird.The effect is the same as specifying the -w switch without specifying a format file.
SQLBINARY oder SQLVARYBINSQLBINARY or SQLVARYBIN Die Daten werden ohne Konvertierung gesendet.The data is sent without any conversion.

BerechtigungenPermissions

Um bcp out ausführen zu können, sind SELECT-Berechtigungen für die Quelltabelle erforderlich.A bcp out operation requires SELECT permission on the source table.

Um bcp in ausführen zu können, sind mindestens SELECT/INSERT-Berechtigungen für die Zieltabelle erforderlich.A bcp in operation minimally requires SELECT/INSERT permissions on the target table. Darüber hinaus sind ALTER TABLE-Berechtigungen erforderlich, wenn eine der folgenden Bedingungen zutrifft:In addition, ALTER TABLE permission is required if any of the following is true:

  • Es sind Einschränkungen vorhanden, und der CHECK_CONSTRAINTS-Hinweis wurde nicht angegeben.Constraints exist and the CHECK_CONSTRAINTS hint is not specified.

    Hinweis

    Die Deaktivierung von Einschränkungen wurde als Standardverhalten festgelegt.Disabling constraints is the default behavior. Verwenden Sie die Option -h mit dem CHECK_CONSTRAINTS-Hinweis, wenn Einschränkungen explizit aktiviert werden sollen.To enable constraints explicitly, use the -h option with the CHECK_CONSTRAINTS hint.

  • Es sind Trigger vorhanden, und der FIRE_TRIGGER-Hinweis wurde nicht angegeben.Triggers exist and the FIRE_TRIGGER hint is not specified.

    Hinweis

    Standardmäßig werden Trigger nicht ausgelöst.By default, triggers are not fired. Verwenden Sie die Option -h mit dem FIRE_TRIGGERS-Hinweis, wenn Trigger explizit ausgelöst werden sollen.To fire triggers explicitly, use the -h option with the FIRE_TRIGGERS hint.

  • Mithilfe der Option -E importieren Sie Identitätswerte aus einer Datendatei.You use the -E option to import identity values from a data file.

Hinweis

ALTER TABLE-Berechtigungen für die Zieltabelle sind erst seit SQL Server 2005SQL Server 2005erforderlich.Requiring ALTER TABLE permission on the target table was new in SQL Server 2005SQL Server 2005. Diese neue Anforderung kann dazu führen, dass bcp -Skripts, die keine Trigger und Einschränkungsüberprüfungen erzwingen, einen Fehler erzeugen, wenn das Benutzerkonto nicht über ALTER TABLE-Berechtigungen für die Zieltabelle verfügt.This new requirement might cause bcp scripts that do not enforce triggers and constraint checks to fail if the user account lacks ALTER table permissions for the target table.

Zeichenmodus (-c)- und einheitlicher Modus (-n) – Bewährte MethodenCharacter Mode (-c) and Native Mode (-n) Best Practices

Dieser Abschnitt beinhaltet Empfehlungen für den Zeichenmodus (-c) und den einheitlichen Modus (-n).This section has recommendations for to character mode (-c) and native mode (-n).

  • (Administrator/Benutzer) Wenn möglich, verwenden Sie das einheitliche Format (-n), um das Trennzeichenproblem zu vermeiden.(Administrator/User) When possible, use native format (-n) to avoid the separator issue. Verwenden Sie das einheitliche Format für Export- und Importvorgänge mit SQL ServerSQL Server.Use the native format to export and import using SQL ServerSQL Server. Exportieren Sie Daten aus SQL ServerSQL Server mit der -c- oder -w-Option, wenn die Daten in eine Nicht- SQL ServerSQL Server -Datenbank importiert werden.Export data from SQL ServerSQL Server using the -c or -w option if the data will be imported to a non- SQL ServerSQL Server database.

  • (Administrator) überprüfen Sie Daten, wenn Sie BCP OUT verwenden.(Administrator) Verify data when using BCP OUT. Wenn Sie z. B. BCP OUT, BCP IN und dann BCP OUT verwenden, überprüfen Sie, ob die Daten ordnungsgemäß exportiert werden, und ob die Abschlusszeichenwerte nicht als Teil eines Datenwerts verwendet werden.For example, when you use BCP OUT, BCP IN, and then BCP OUT verify that the data is properly exported and the terminator values are not used as part of some data value. Erwägen Sie, die Standardabschlusszeichen (mithilfe von -t- und -r-Optionen) mit zufälligen Hexadezimalwerten zu überschreiben, um Konflikte zwischen Abschlusszeichenwerten und Datenwerten zu vermeiden.Please consider overriding the default terminators (using -t and -r options) with random hexadecimal values to avoid conflicts between terminator values and data values.

  • (Benutzer) Verwenden Sie ein langes und eindeutiges Abschlusszeichen (eine Byte- oder Zeichensequenz), um die Wahrscheinlichkeit eines Konflikts mit dem tatsächlichen Zeichenfolgenwert zu minimieren.(User) Use a long and unique terminator (any sequence of bytes or characters) to minimize the possibility of a conflict with the actual string value. Verwenden Sie dazu die -t-Option und die -r-Option.This can be done by using the -t and -r options.

BeispieleExamples

Dieser Abschnitt enthält die folgenden Beispiele:This section contains the following examples:

  • A.A. Identifizieren der Version des Hilfsprogramms bcpIdentify bcp utility version

  • B.B. Kopieren von Tabellenzeilen in eine Datendatei (mit einer vertrauenswürdigen Verbindung)Copying table rows into a data file (with a trusted connection)

  • C.C. Kopieren von Tabellenzeilen in eine Datendatei (mit Authentifizierung im gemischten Modus)Copying table rows into a data file (with Mixed-mode Authentication)

  • D.D. Kopieren von Daten aus einer Datei in eine TabelleCopying data from a file to a table

  • E.E. Kopieren einer bestimmten Spalte in eine DatendateiCopying a specific column into a data file

  • F.F. Kopieren einer bestimmten Zeile in eine DatendateiCopying a specific row into a data file

  • G.G. Kopieren von Daten aus einer Abfrage in eine DatendateiCopying data from a query to a data file

  • H.H. Erstellen von FormatdateienCreating format files

  • I.I. Verwenden einer Formatdatei für einen Massenimport mithilfe von bcpUsing a format file to bulk import with bcp

BeispieltestbedingungenExample Test Conditions

In den folgenden Beispielen wird die WideWorldImporters -Beispieldatenbank für SQL Server (ab 2016) und Azure SQL-Datenbank verwendet.The examples below make use of the WideWorldImporters sample database for SQL Server (starting 2016) and Azure SQL Database. WideWorldImporters kann heruntergeladen werden https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0 .WideWorldImporters can be downloaded from https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0. Die Syntax zum Wiederherstellen der Beispieldatenbank finden Sie unter RESTORE (Transact-SQL) .See RESTORE (Transact-SQL) for the syntax to restore the sample database. Sofern nicht anders angegeben, wird bei diesem Beispiel vorausgesetzt, dass Sie die Windows-Authentifizierung verwenden und über eine vertrauenswürdige Verbindung mit der Serverinstanz verfügen, auf der Sie den bcp -Befehl ausführen.Except where specified otherwise, the examples assume that you are using Windows Authentication and have a trusted connection to the server instance on which you are running the bcp command. Ein Verzeichnis namens D:\BCP wird in vielen der Beispiele verwendet.A directory named D:\BCP will be used in many of the examples.

Das folgende Skript erstellt eine leere Kopie der WideWorldImporters.Warehouse.StockItemTransactions-Tabelle und fügt dann eine Primärschlüsseleinschränkung hinzu.The script below creates an empty copy of the WideWorldImporters.Warehouse.StockItemTransactions table and then adds a primary key constraint. Führen Sie das folgende T-SQL-Skript in SQL Server Management Studio (SSMS) aus.Run the following T-SQL script in SQL Server Management Studio (SSMS)

USE WideWorldImporters;  
GO  

SET NOCOUNT ON;

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Warehouse.StockItemTransactions_bcp')     
BEGIN
    SELECT * INTO WideWorldImporters.Warehouse.StockItemTransactions_bcp
    FROM WideWorldImporters.Warehouse.StockItemTransactions  
    WHERE 1 = 2;  

    ALTER TABLE Warehouse.StockItemTransactions_bcp 
    ADD CONSTRAINT PK_Warehouse_StockItemTransactions_bcp PRIMARY KEY NONCLUSTERED 
    (StockItemTransactionID ASC);
END

Hinweis

Schneiden Sie die StockItemTransactions_bcp -Tabelle bei Bedarf ab.Truncate the StockItemTransactions_bcp table as needed.

TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;

A.A. Identifizieren der Version des Hilfsprogramms bcpIdentify bcp utility version

Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

bcp -v

B.B. Kopieren von Tabellenzeilen in eine Datendatei (mit einer vertrauenswürdigen Verbindung)Copying table rows into a data file (with a trusted connection)

In den folgenden Beispielen wird die Verwendung der Option out in der WideWorldImporters.Warehouse.StockItemTransactions -Tabelle veranschaulicht.The following examples illustrates the out option on the WideWorldImporters.Warehouse.StockItemTransactions table.

  • GrundlegendBasic
    In diesem Beispiel wird die Datendatei StockItemTransactions_character.bcp erstellt, und die Tabellendaten werden mithilfe eines Zeichenformats in die Datendatei kopiert.This example creates a data file named StockItemTransactions_character.bcp and copies the table data into it using character format.

    Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -T
    
    • ExpandedExpanded
      In diesem Beispiel wird die Datendatei StockItemTransactions_native.bcp erstellt, und die Tabellendaten werden mithilfe des nativen Formats in die Datendatei kopiert.This example creates a data file named StockItemTransactions_native.bcp and copies the table data into it using the native format. Im Beispiel werden auch die maximale Anzahl von Syntaxfehlern, eine Fehlerdatei und eine Ausgabedatei angegeben.The example also: specifies the maximum number of syntax errors, an error file, and an output file.

      Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

      bcp WideWorldImporters.Warehouse.StockItemTransactions OUT D:\BCP\StockItemTransactions_native.bcp -m 1 -n -e D:\BCP\Error_out.log -o D:\BCP\Output_out.log -S -T
      

Informieren Sie sich unter Error_out.log und Output_out.log.Review Error_out.log and Output_out.log. Error_out.log sollte leer sein.Error_out.log should be blank. Vergleichen Sie die Dateigrößen zwischen StockItemTransactions_character.bcp und StockItemTransactions_native.bcp.Compare the file sizes between StockItemTransactions_character.bcp and StockItemTransactions_native.bcp.

C.C. Kopieren von Tabellenzeilen in eine Datendatei (mit Authentifizierung im gemischten Modus)Copying table rows into a data file (with mixed-mode authentication)

Im folgenden Beispiel wird die Verwendung der Option out in der WideWorldImporters.Warehouse.StockItemTransactions-Tabelle veranschaulicht.The following example illustrates the out option on the WideWorldImporters.Warehouse.StockItemTransactions table. In diesem Beispiel wird die Datendatei StockItemTransactions_character.bcp erstellt, und die Tabellendaten werden mithilfe eines Zeichenformats in die Datendatei kopiert.This example creates a data file named StockItemTransactions_character.bcp and copies the table data into it using character format.

Bei diesem Beispiel wird vorausgesetzt, dass Sie die Authentifizierung im gemischten Modus verwenden. Sie müssen daher den Schalter -U verwenden, um die Anmelde-ID anzugeben.The example assumes that you are using mixed-mode authentication, you must use the -U switch to specify your login ID. Sofern Sie keine Verbindung mit der Standardinstanz von SQL ServerSQL Server auf dem lokalen Computer herstellen, müssen Sie außerdem mit dem Schalter -S den Systemnamen und optional einen Instanznamen angeben.Also, unless you are connecting to the default instance of SQL ServerSQL Server on the local computer, use the -S switch to specify the system name and, optionally, an instance name.

Geben Sie folgenden Befehl an der Eingabeaufforderung ein: (Das System fordert Sie zur Eingabe des Kennworts auf.)At a command prompt, enter the following command: (The system will prompt you for your password.)

bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>

D.D. Kopieren von Daten aus einer Datei in eine TabelleCopying data from a file to a table

Die folgenden Beispiele veranschaulichen die Option in für die WideWorldImporters.Warehouse.StockItemTransactions_bcp -Tabelle unter Verwendung der oben erstellten Dateien.The following examples illustrate the in option on the WideWorldImporters.Warehouse.StockItemTransactions_bcp table using files created above.

  • StandardBasic
    Dieses Beispiel verwendet die StockItemTransactions_character.bcp -Datendatei, die zuvor erstellt wurde.This example uses the StockItemTransactions_character.bcp data file previously created.

    Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -T  
    
  • ExpandedExpanded
    Dieses Beispiel verwendet die StockItemTransactions_native.bcp -Datendatei, die zuvor erstellt wurde.This example uses the StockItemTransactions_native.bcp data file previously created. Im Beispiel werden auch der Hinweis TABLOCK, die Batchgröße, die maximale Anzahl von Syntaxfehlern, eine Fehlerdatei und eine Ausgabedatei angegeben.The example also: use the hint TABLOCK, specifies the batch size, the maximum number of syntax errors, an error file, and an output file.

    Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_native.bcp -b 5000 -h "TABLOCK" -m 1 -n -e D:\BCP\Error_in.log -o D:\BCP\Output_in.log -S -T 
    

    Informieren Sie sich unter Error_in.log und Output_in.log.Review Error_in.log and Output_in.log.

E.E. Kopieren einer bestimmten Spalte in eine DatendateiCopying a specific column into a data file

Zum Kopieren einer bestimmten Spalte können Sie die Option queryout verwenden.To copy a specific column, you can use the queryout option. Im folgenden Beispiel wird nur die StockItemTransactionID -Spalte der Warehouse.StockItemTransactions -Tabelle in eine Datendatei kopiert.The following example copies only the StockItemTransactionID column of the Warehouse.StockItemTransactions table into a data file.

Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\BCP\StockItemTransactionID_c.bcp -c -T

F.F. Kopieren einer bestimmten Zeile in eine DatendateiCopying a specific row into a data file

Zum Kopieren einer bestimmten Zeile können Sie die Option queryout verwenden.To copy a specific row, you can use the queryout option. Im folgenden Beispiel wird nur die Zeile für den Kontakt Amy Trefl aus der WideWorldImporters.Application.People-Tabelle in eine Datendatei Amy_Trefl_c.bcp kopiert.The following example copies only the row for the person named Amy Trefl from the WideWorldImporters.Application.People table into a data file Amy_Trefl_c.bcp. Hinweis: Der Schalter -d wird zum Identifizieren der Datenbank verwendet.Note: the -d switch is used identify the database.

Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\BCP\Amy_Trefl_c.bcp -d WideWorldImporters -c -T

G.G. Kopieren von Daten aus einer Abfrage in eine DatendateiCopying data from a query to a data file

Verwenden Sie die Option queryout zum Kopieren des Resultsets einer Transact-SQL-Anweisung in eine Datendatei.To copy the result set from a Transact-SQL statement to a data file, use the queryout option. Im folgenden Beispiel werden die Namen aus der WideWorldImporters.Application.People-Tabelle nach vollständigem Namen geordnet in die Datendatei People.txt kopiert.The following example copies the names from the WideWorldImporters.Application.People table, ordered by full name, into the People.txt data file. Hinweis: Der Schalter -t wird verwendet, um eine durch Trennzeichen getrennte Datei zu erstellen.Note: the -t switch is used to create a comma delimited file.

Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\BCP\People.txt -t, -c -T

H.H. Erstellen von FormatdateienCreating format files

In dem folgenden Beispiel werden drei verschiedene Formatdateien für die Warehouse.StockItemTransactions-Tabelle in der WideWorldImporters-Datenbank erstellt.The following example creates three different format files for the Warehouse.StockItemTransactions table in the WideWorldImporters database. Überprüfen Sie den Inhalt der einzelnen erstellten Dateien.Review the contents of each created file.

Geben Sie folgende Befehle an der Eingabeaufforderung ein:At a command prompt, enter the following commands:

REM non-XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.fmt -c -T 

REM non-XML native format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_n.fmt -n -T

REM XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.xml -x -c -T

Hinweis

Um die Option -x zu verwenden, müssen Sie über einen bcp 9.0-Client verfügen.To use the -x switch, you must be using a bcp 9.0 client. Informationen zum Verwenden des bcp 9.0-Clients finden Sie unter „Hinweise“.For information about how to use the bcp 9.0 client, see "Remarks."

Weitere Informationen finden Sie unter Nicht-XML-Formatdateien (SQL Server) und XML-Formatdateien (SQL Server).For more information, see Non-XML Format Files (SQL Server) and XML Format Files (SQL Server).

I.I. Verwenden einer Formatdatei für einen Massenimport mithilfe von bcpUsing a format file to bulk import with bcp

Wenn Sie eine zuvor erstellte Formatdatei zum Importieren von Daten in eine SQL ServerSQL Server-Instanz verwenden möchten, müssen Sie den Schalter -f mit der Option in verwenden.To use a previously created format file when importing data into an instance of SQL ServerSQL Server, use the -f switch with the in option. So wird beispielsweise durch den folgenden Befehl der Inhalt der Datendatei StockItemTransactions_character.bcpin eine Kopie der Warehouse.StockItemTransactions_bcp -Tabelle massenkopiert, wobei die zuvor erstellte Formatdatei StockItemTransactions_c.xmlverwendet wird.For example, the following command bulk copies the contents of a data file, StockItemTransactions_character.bcp, into a copy of the Warehouse.StockItemTransactions_bcp table by using the previously created format file, StockItemTransactions_c.xml. Hinweis: Der Schalter -L wird dazu verwendet, um nur die ersten 100 Datensätze zu importieren.Note: the -L switch is used to import only the first 100 records.

Geben Sie folgenden Befehl an der Eingabeaufforderung ein:At a command prompt, enter the following command:

bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in D:\BCP\StockItemTransactions_character.bcp -L 100 -f D:\BCP\StockItemTransactions_c.xml -T 

Hinweis

Formatdateien erweisen sich besonders dann als nützlich, wenn die Felder in der Datendatei z. B. hinsichtlich Anzahl, Reihenfolge oder Datentypen von den Tabellenspalten abweichen.Format files are useful when the data file fields are different from the table columns; for example, in their number, ordering, or data types. Weitere Informationen finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)erforderlich.For more information, see Format Files for Importing or Exporting Data (SQL Server).

J.J. Angeben einer CodepageSpecifying a code page

Das folgende teilweise Codebeispiel zeigt einen bcp-Importvorgang mit angegebener Codeseite 65001:The following partial code example shows bcp import while specifying a code page 65001:

bcp.exe MyTable in "D:\data.csv" -T -c -C 65001 -t , ...  

Das folgende teilweise Codebeispiel zeigt einen bcp-Exportvorgang mit angegebener Codeseite 65001:The following partial code example shows bcp export while specifying a code page 65001:

bcp.exe MyTable out "D:\data.csv" -T -c -C 65001 -t , ...  

Zusätzliche BeispieleAdditional Examples

Die folgenden Themen enthalten Beispiele zur Verwendung von „bcp“:The following topics contain examples of using bcp:
Datenformate für Massenimport oder Massenexport (SQL Server)Data Formats for Bulk Import or Bulk Export (SQL Server)
 ● Verwenden das native Format zum Importieren oder Exportieren von Daten (SQL Server) ● Use Native Format to Import or Export Data (SQL Server)
 ● Verwenden des Zeichenformats zum Importieren und Exportieren von Daten (SQL Server) ● Use Character Format to Import or Export Data (SQL Server)
 ● Verwenden von nativen Unicode-Formaten zum Importieren oder Exportieren von Daten (SQL Server) ● Use Unicode Native Format to Import or Export Data (SQL Server)
 ● Verwenden des Unicode-Zeichenformats zum Importieren und Exportieren von Daten (SQL Server) ● Use Unicode Character Format to Import or Export Data (SQL Server)

Angeben von Feld- und Zeilenabschlusszeichen (SQL Server)Specify Field and Row Terminators (SQL Server)

Beibehalten von NULL-Werten oder Verwenden von Standardwerten während des Massenimports (SQL Server)Keep Nulls or Use Default Values During Bulk Import (SQL Server)

Beibehalten von Identitätswerten beim Massenimport von Daten (SQL Server)Keep Identity Values When Bulk Importing Data (SQL Server)

Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)Format Files for Importing or Exporting Data (SQL Server))
 &#9679 Erstellen einer Formatdatei (SQL Server) ● Create a Format File (SQL Server)
 ● Massenimport von Daten mithilfe einer Formatdatei (SQL Server) ● Use a Format File to Bulk Import Data (SQL Server)
 ● Überspringen einer Tabellenspalte mithilfe einer Formatdatei (SQL Server) ● Use a Format File to Skip a Table Column (SQL Server)
 ● Auslassen eines Datenfelds mithilfe einer Formatdatei (SQL Server) ● Use a Format File to Skip a Data Field (SQL Server)
 ● Verwenden einer Formatdatei zum Zuordnen von Tabellenspalten zu Datendateifeldern (SQL Server) ● Use a Format File to Map Table Columns to Data-File Fields (SQL Server)

Beispiele für den Massenimport und -export von XML-Dokumenten (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)

Weitere Informationen finden Sie unterSee Also

Vorbereiten von Daten für den Massenexport oder -import (SQL Server) Prepare Data for Bulk Export or Import (SQL Server)
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL) SET QUOTED_IDENTIFIER (Transact-SQL)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
sp_tableoption (Transact-SQL) sp_tableoption (Transact-SQL)
Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)Format Files for Importing or Exporting Data (SQL Server)

FeedbackFeedback

Hilfe_benötigt_Person_Symbol SQL Clienttools-Forumneedhelp_person_icon SQL Client Tools Forum

info_tip Hilfe erhaltenGet Help