Программа bcpbcp Utility

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL AzureдаХранилище данных SQL AzureдаParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Сведения об использовании программы bcp в Linux см. в статье Установка sqlcmd и bcp в Linux.For using bcp on Linux, see Install sqlcmd and bcp on Linux.

Подробные сведения об использовании bcp с хранилищем данных SQL Azure см. в разделе Загрузка данных с помощью bcp.For detailed information about using bcp with Azure SQL Data Warehouse, see Load data with bcp.

Служебная программа "bulk copy program" (bcp) используется для массового копирования данных между экземпляром MicrosoftMicrosoft SQL ServerSQL Server и файлом данных в указанном пользователем формате.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. С помощью программы bcp можно выполнять импорт большого количества новых строк в таблицы SQL ServerSQL Server или экспорт данных из таблиц в файлы данных.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. За исключением случаев использования параметра queryout , применение программы не требует знания языка Transact-SQLTransact-SQL.Except when used with the queryout option, the utility requires no knowledge of Transact-SQLTransact-SQL. Чтобы выполнить импорт данных в таблицу, необходимо или использовать файл форматирования, созданный для этой таблицы, либо изучить структуру таблицы и типов данных, допустимых для ее столбцов.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.

Topic link iconСведения о синтаксических обозначениях в программе bcp см. в разделе Синтаксические обозначения в Transact-SQL (Transact-SQL).Topic link icon For the syntax conventions that are used for the bcp syntax, see Transact-SQL Syntax Conventions (Transact-SQL).

Примечание

При использовании программы bcp для резервного копирования данных создайте файл форматирования для записи формата данных.If you use bcp to back up your data, create a format file to record the data format. Файлы данныхbcp не включают сведения о схеме или формате, поэтому при удалении таблицы или представления, если отсутствует файл форматирования, импорт данных будет невозможен.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.

Скачайте последнюю версию программы bcpDownload the latest version of bcp Utility

download Скачать программы командной строки Microsoft 15.0 для SQL Server(х64)download Download Microsoft Command Line Utilities 15.0 for SQL Server (x64)
download Скачать программы командной строки Microsoft 15.0 для SQL Server(х86)download Download Microsoft Command Line Utilities 15.0 for SQL Server (x86)

Программы командной строки — общедоступная версия, однако они выпускаются вместе с пакетом установщика для SQL Server 2019SQL Server 2019.The command line tools are General Availability (GA), however they are being released with the installer package for SQL Server 2019SQL Server 2019.

Сведения о версииVersion Information

Номер выпуска: 15.0Release number: 15.0
Номер сборки: 15.0.1000.34Build number: 15.0.1000.34
Дата выпуска: 18 октября 2018 г.Release date: October 18, 2018

Новая версия SQLCMD поддерживает аутентификацию Azure AD, включая поддержку многофакторной проверки подлинности (MFA) для базы данных SQL, хранилища данных SQL и Always Encrypted компонентов.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. Новый BCP поддерживает аутентификацию Azure AD, включая поддержку многофакторной проверки подлинности (MFA) для базы данных SQL и хранилища данных SQL.The new BCP supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database and SQL Data Warehouse.

Требования к системеSystem Requirements

Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows Server 2012, Windows Server 2012 R2Windows 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

Этот компонент требует наличия установщика Windows версии 4.5 и драйвера Microsoft ODBC 17.3 для SQL Server.This component requires both Windows Installer 4.5 and Microsoft ODBC Driver 17.3 for SQL Server.

Чтобы проверить выполнение bcp /v команды bcp Version и убедиться, что используется 15.0.1000.34 или более поздняя версия.To check the BCP version execute bcp /v command and confirm that 15.0.1000.34 or higher is in use.

СинтаксисSyntax
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 login_timeout]
    [-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]

АргументыArguments

файл_данных data_file
Полный путь файла данных.Is the full path of the data file. После выполнения массового импорта данных в SQL ServerSQL Serverфайл данных содержит данные, которые будут скопированы в указанную таблицу или представление.When data is bulk imported into SQL ServerSQL Server, the data file contains the data to be copied into the specified table or view. После выполнения массового экспорта данных из SQL ServerSQL Serverфайл данных содержит данные, скопированные из таблицы или представления.When data is bulk exported from SQL ServerSQL Server, the data file contains the data copied from the table or view. Путь может содержать от 1 до 255 символов.The path can have from 1 through 255 characters. Файл данных может содержать максимум 2^63 – 1 строк.The data file can contain a maximum of 2^63 - 1 rows.

имя_базы данных database_name
Имя базы данных, в которой находится указанная таблица или представление.Is the name of the database in which the specified table or view resides. Эта база данных будет по умолчанию использоваться для пользователя, если не указано иное.If not specified, this is the default database for the user.

Можно также явным образом указать имя базы данных с помощью параметра d- .You can also explicitly specify the database name with d-.

in файл_данных | out файл_данных | queryout файл_данных | format nulin data_file | out data_file | queryout data_file | format nul
Указывает направление массового копирования следующим образом:Specifies the direction of the bulk copy, as follows:

  • in — копирует данные из файла в таблицу или представление базы данных.in copies from a file into the database table or view.

  • out — копирует данные из таблицы или представления базы данных в файл.out copies from the database table or view to a file. Если указать существующий файл, то файл перезаписывается.If you specify an existing file, the file is overwritten. При извлечении данных обратите внимание, что программа bcp представляет пустую строку как строку NULL, а строку NULL — как пустую строку.When extracting data, note that the bcp utility represents an empty string as a null and a null string as an empty string.

  • queryout — копирует данные из запроса. Этот аргумент может быть указан только при массовом копировании данных из запроса.queryout copies from a query and must be specified only when bulk copying data from a query.

  • format — создает файл форматирования, основанный на указанных параметрах ( -n, -c, -wили -N) и разделителях таблиц или представлений.format creates a format file based on the option specified (-n, -c, -w, or -N) and the table or view delimiters. При выполнении массового копирования данных программа bcp может обратиться к файлу форматирования, что позволяет избежать повторного ввода данных о формате в интерактивном режиме.When bulk copying data, the bcp command can refer to a format file, which saves you from re-entering format information interactively. Параметр format требует наличия параметра -f. Для создания XML-файла форматирования, кроме того, необходим параметр -x.The format option requires the -f option; creating an XML format file, also requires the -x option. Дополнительные сведения см. в разделе Создание файла форматирования (SQL Server).For more information, see Create a Format File (SQL Server). В качестве значения необходимо указать nul (format nul).You must specify nul as the value (format nul).

владелец owner
Имя владельца таблицы или представления.Is the name of the owner of the table or view. Можно не указывать необязательный параметрowner , если пользователь, выполняющий операцию, является владельцем указанной таблицы или представления.owner is optional if the user performing the operation owns the specified table or view. вернет сообщение об ошибке и операция завершится, если аргумент owner SQL ServerSQL Server не указан, а пользователь, выполняющий операцию, не является владельцем указанной таблицы или представления.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 " — это запрос на языке Transact-SQLTransact-SQL, который возвращает результирующий набор." query " Is a Transact-SQLTransact-SQL query that returns a result set. Если запрос возвращает несколько результирующих наборов, то в файл данных будет скопирован только первый результирующий набор. Последующие результирующие наборы не учитываются.If the query returns multiple result sets, only the first result set is copied to the data file; subsequent result sets are ignored. Используйте двойные кавычки для запроса и одинарные кавычки для выражений, внедренных в запрос.Use double quotation marks around the query and single quotation marks around anything embedded in the query. При выполнении массового копирования данных из запроса необходимо, помимо прочего, указывать аргументqueryout .queryout must also be specified when bulk copying data from a query.

Запрос может ссылаться на хранимую процедуру, если все таблицы, на которые имеются ссылки в хранимой процедуре, существуют до выполнения инструкции bcp.The query can reference a stored procedure as long as all tables referenced inside the stored procedure exist prior to executing the bcp statement. Например, если хранимая процедура порождает временную таблицу, инструкция bcp завершается с ошибкой, поскольку временная таблица доступна только во время выполнения, а не во время запуска инструкции.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. В этом случае можно вставить результаты работы хранимой процедуры в таблицу, после чего использовать bcp для копирования данных из этой таблицы в файл данных.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_name
Имя целевой таблицы при импорте данных в SQL ServerSQL Server (in) или таблицы-источника при экспорте данных из SQL ServerSQL Server (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
Имя целевого представления при копировании данных в SQL ServerSQL Server (in) или представления-источника при копировании данных из SQL ServerSQL Server (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). В качестве целевых представлений могут выступать только те представления, в которых все столбцы ссылаются на одну таблицу.Only views in which all columns refer to the same table can be used as destination views. Дополнительные сведения об ограничениях, накладываемых на копирование данных в представления, см. в разделе INSERT (Transact-SQL).For more information on the restrictions for copying data into views, see INSERT (Transact-SQL).

-a размер_пакетов -a packet_size
Указывает число байтов в каждом сетевом пакете, отправляемом от сервера и к серверу.Specifies the number of bytes, per network packet, sent to and from the server. Параметр конфигурации сервера можно задать с помощью среды SQL Server Management StudioSQL Server Management Studio (или системной хранимой процедуры sp_configure ).A server configuration option can be set by using SQL Server Management StudioSQL Server Management Studio (or the sp_configure system stored procedure). Однако параметр конфигурации сервера в отдельных случаях можно изменить с помощью этого параметра.However, the server configuration option can be overridden on an individual basis by using this option. Значениеpacket_size может находиться в пределах от 4096 до 65535 байт, значение по умолчанию равно 4096.packet_size can be from 4096 to 65535 bytes; the default is 4096.

Увеличение размера пакета может повысить производительность операций массового копирования.Increased packet size can enhance performance of bulk-copy operations. Если был запрошен пакет большего размера, но он не может быть предоставлен, то используется значение по умолчанию.If a larger packet is requested but cannot be granted, the default is used. Статистика производительности, формируемая программой bcp , показывает используемый размер пакета.The performance statistics generated by the bcp utility show the packet size used.

-b размер_пакета -b batch_size
Указывает количество строк в каждом пакете импортированных данных.Specifies the number of rows per batch of imported data. Каждый пакет импортируется и регистрируется как отдельная транзакция, которая фиксируется после выполнения импорта всего пакета.Each batch is imported and logged as a separate transaction that imports the whole batch before being committed. По умолчанию импорт всех строк в файле данных выполняется в одном пакете.By default, all the rows in the data file are imported as one batch. Чтобы распределить строки между несколькими пакетами, укажите значение batch_size меньшее, чем количество строк в файле данных.To distribute the rows among multiple batches, specify a batch_size that is smaller than the number of rows in the data file. Если транзакция пакета завершится неудачно, то будет выполнен откат только операций вставки в текущем пакете.If the transaction for any batch fails, only insertions from the current batch are rolled back. Произошедшая ошибка не затрагивает пакеты, импорт которых уже выполнен зафиксированными транзакциями.Batches already imported by committed transactions are unaffected by a later failure.

Не применяйте этот параметр вместе с параметром -h " ROWS_PER_BATCH = bb " .Do not use this option in conjunction with the -h " ROWS_PER_BATCH =bb" option.

-c-c
Выполняет операцию, используя символьный тип данных.Performs the operation using a character data type. При использовании этого параметра не запрашивается тип данных каждого поля. Для хранения данных используется тип char , префиксы отсутствуют, в качестве разделителя полей используется символ табуляции \t , а в качестве признака конца строки — символ новой строки \r\n .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 не совместим с -w.-c is not compatible with -w.

Дополнительные сведения см. в разделе Использование символьного формата для импорта и экспорта данных (SQL Server).For more information, see Use Character Format to Import or Export Data (SQL Server).

-C { ACP | OEM | RAW | code_page } -C { ACP | OEM | RAW | code_page }
Указывает кодовую страницу данных в файле данных.Specifies the code page of the data in the data file. Аргументcode_page имеет смысл только в том случае, если данные содержат столбцы типа char, varcharили text с символами, коды которых больше 127 или меньше 32.code_page is relevant only if the data contains char, varchar, or text columns with character values greater than 127 or less than 32.

Примечание

Рекомендуется указывать имя параметра сортировки для каждого столбца в файле форматирования, кроме случаев, когда параметр 65001 должен иметь приоритет над спецификацией параметров сортировки или кодовой страницы.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.

Значение кодовой страницыCode page value ОписаниеDescription
ACPACP ANSIANSI/Microsoft Windows (ISO 1252)./Microsoft Windows (ISO 1252).
OEMOEM Кодовая страница, используемая клиентом по умолчанию.Default code page used by the client. Это кодовая страница, используемая по умолчанию, если не указан параметр -C .This is the default code page used if -C is not specified.
RAWRAW Преобразование из одной кодовой страницы в другую не выполняется.No conversion from one code page to another occurs. Этот параметр обеспечивает высокую производительность, так как преобразование не выполняется.This is the fastest option because no conversion occurs.
code_pagecode_page Определенный номер кодовой страницы, например 850.Specific code page number; for example, 850.

Версии раньше 13 (SQL Server 2016 (13.x)SQL Server 2016 (13.x)) не поддерживают кодовую страницу 65001 (кодировка UTF-8).Versions prior to version 13 (SQL Server 2016 (13.x)SQL Server 2016 (13.x)) do not support code page 65001 (UTF-8 encoding). Начиная с версии 13, кодировку UTF-8 можно импортировать в более ранние версии SQL ServerSQL Server.Versions beginning with 13 can import UTF-8 encoding to earlier versions of SQL ServerSQL Server.

-d имя_базы данных -d database_name
Указывает базу данных, с которой надо соединиться.Specifies the database to connect to. По умолчанию программа bcp.exe соединяется с пользовательской базой данных по умолчанию.By default, bcp.exe connects to the user's default database. Если указан параметр -d database_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.Если указан параметр database_name начинается с дефиса (-) или прямой косой черты (/), не добавляйте пробел между -d и именем базы данных.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_ -e err_file
Указывает полный путь к файлу ошибок, используемому для хранения строк, которые служебная программа bcp не может передать из файла в базу данных.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. Сообщения об ошибках команды bcp поступают на рабочую станцию пользователя.Error messages from the bcp command go to the workstation of the user. Если этот параметр не используется, то файл ошибок не создается.If this option is not used, an error file is not created.

Если параметр err_file начинается с дефиса (-) или косой черты (/), не ставьте пробел между -e и значением err_file .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
Указывает, что значение или значения идентификаторов в файле импортированных данных будут использоваться для столбца идентификаторов.Specifies that identity value or values in the imported data file are to be used for the identity column. Если аргумент -E не указан, значения идентификаторов для этого столбца в импортируемом файле данных не учитываются, и SQL ServerSQL Server автоматически назначает уникальные значения на основе начального значения и значения приращения, указанных во время создания таблицы.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.

Если файл данных не содержит значений для столбца идентификаторов в таблице или представлении, то с помощью файла форматирования укажите, что столбец идентификаторов в таблице или представлении должен быть пропущен при импорте данных. SQL ServerSQL Server автоматически присвоит столбцу уникальные значения.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. Дополнительные сведения см. в разделе DBCC CHECKIDENT (Transact-SQL).For more information, see DBCC CHECKIDENT (Transact-SQL).

Для использования параметра -E необходимы специальные разрешения.The -E option has a special permissions requirement. Дополнительные сведения см. в подразделе "Примечания" ниже.For more information, see "Remarks" later in this topic.

-f файл_форматирования -f format_file
Указывает полный путь к файлу форматирования.Specifies the full path of a format file. Назначение этого параметра зависит от окружения, в котором он используется (см. далее):The meaning of this option depends on the environment in which it is used, as follows:

  • Если параметр -f используется с параметром format , для указанной таблицы или представления создается файл с именем format_file .If -f is used with the format option, the specified format_file is created for the specified table or view. Чтобы создать XML-файл форматирования, укажите параметр -x.To create an XML format file, also specify the -x option. Дополнительные сведения см в разделе Создание файла форматирования XML (SQL Server).For more information, see Create a Format File (SQL Server).

  • При использовании параметра in или out для -f должен существовать файл форматирования.If used with the in or out option, -f requires an existing format file.

    Примечание

    Необязательно использовать файл форматирования с параметром in или out .Using a format file in with the in or out option is optional. Если отсутствует параметр -f и не указаны параметры -n, -c, -wили -N , команда запрашивает сведения о форматировании и позволяет сохранить ответы в файле форматирования (имя файла по умолчанию — Bcp.fmt).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).

Если параметр format_file начинается с дефиса (-) или косой черты (/), не ставьте пробел между -e и значением format_file .If format_file begins with a hyphen (-) or a forward slash (/), do not include a space between -f and the format_file value.

-F первый_ряд -F first_row
Указывает номер первой строки для экспорта из таблицы или импорта из файла данных.Specifies the number of the first row to export from a table or import from a data file. Значение параметра должно быть больше (>) 0, но меньше (<) или равно (=) общему количеству строк.This parameter requires a value greater than (>) 0 but less than (<) or equal to (=) the total number rows. Если параметр отсутствует, по умолчанию используется первая строка файла.In the absence of this parameter, the default is the first row of the file.

Параметрfirst_row может иметь положительное целое значение до 2^63-1.first_row can be a positive integer with a value up to 2^63-1. Аргумент -F first_row имеет нумерацию, которая начинается с 1.-F first_row is 1-based.

-G-G
Клиент использует этот переключатель при подключении к базе данных SQL Azure или хранилищу данных SQL Azure, чтобы указать, что проверка подлинности пользователя выполняется с помощью Azure Active Directory.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. Для параметра-G требуется версия 14.0.3008.27 или более поздняя.The -G switch requires version 14.0.3008.27 or later. Чтобы определить версию, выполните команду bcp -v.To determine your version, execute bcp -v. Дополнительные сведения см. в статье использование проверки Подлинности Azure Active Directory для проверки подлинности с помощью базы данных SQL или хранилища данных SQL.For more information, see Use Azure Active Directory Authentication for authentication with SQL Database or SQL Data Warehouse.

Важно!

Параметр -G применяется только для базы данных SQL Azure и хранилища данных Azure.The -G option only applies to Azure SQL Database and Azure Data Warehouse. Интегрированная и интерактивная проверка подлинности AAD в настоящее время не поддерживается в Linux или macOS.AAD Integrated and Interactive Authentication is not currently supported on Linux or macOS.

Совет

Чтобы проверить, поддерживает ли ваша версия программы bcp тип Azure Active Directory Authentication (AAD), (BCP<Space ><тире ><тире >) и убедитесь, что вы видите-G в списке доступные аргументы.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 DirectoryAzure Active Directory Username and Password:

    Если вы хотите использовать имя пользователя и пароль Azure Active Directory, можно указать параметр -G , а также использовать имя пользователя и пароль, задав параметры -U и -P .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.

    В следующем примере данные экспортируются с помощью имени пользователя и пароля Azure AD, где пользователь и пароль являются учетными данными AAD.The following example exports data using Azure AD Username and Password where user and password is an AAD credential. Пример экспортирует таблицу bcptest из базы данных testdb с сервера aadserver.database.windows.net Azure и сохраняет данные в файле 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
    

    В следующем примере данные импортируются с помощью имени пользователя и пароля Azure AD, где пользователь и пароль являются учетными данными AAD.The following example imports data using Azure AD Username and Password where user and password is an AAD credential. Пример импортирует c:\last\data1.dat данные из файла в таблицу bcptest для базы данных testdb на сервере aadserver.database.windows.net Azure с помощью пользователя или пароля Azure AD: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
    
  • Встроенная проверка подлинности Azure Active DirectoryAzure Active Directory Integrated

    Чтобы использовать встроенную проверку подлинности Azure Active Directory, укажите параметр -G без имени пользователя или пароля.For Azure Active Directory Integrated authentication, provide the -G option without a user name or password. В этой конфигурации предполагается, что текущая учетная запись пользователя Windows (учетная запись, под которой выполняется команда bcp) — это федеративный с Azure AD:This configuration assumes that the current Windows user account (the account the bcp command is running under) is federated with Azure AD:

    В следующем примере выполняется экспорт данных с помощью интегрированной учетной записи Azure AD.The following example exports data using Azure AD Integrated account. Пример экспортирует таблицу bcptest из базы данных testdb с помощью Azure AD, интегрированной aadserver.database.windows.net с сервера Azure, и сохраняет 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
    

    В следующем примере выполняется импорт данных с помощью интегрированной проверки подлинности Azure AD. В примере выполняется импорт данных из c:\last\data2.txt файла в bcptest таблицу для testdb базы данных на aadserver.database.windows.net сервере Azure с помощью интегрированной проверки подлинности Azure AD: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 DirectoryAzure Active Directory Interactive

    Интерактивная проверка подлинности Azure AD для базы данных SQL Azure и хранилища данных SQL позволяет использовать интерактивный метод, поддерживающий многофакторную проверку подлинности.The Azure AD Interactive authentication for Azure SQL Database and SQL Data Warehouse, allows you to use an interactive method supporting multi-factor authentication. Дополнительные сведения см. в статье Active Directoryная Интерактивная проверкаподлинности.For additional information, see Active Directory Interactive Authentication.

    Для интерактивной работы Azure AD требуется bcp версии 15.0.1000.34 или более поздней, а также ODBC версии 17,2 или более поздней.Azure AD interactive requires bcp version 15.0.1000.34 or later as well as ODBC version 17.2 or later.

    Чтобы включить интерактивную проверку подлинности, укажите параметр-G только с именем пользователя (-U) без пароля.To enable interactive authentication, provide -G option with user name (-U) only, without a password.

    В следующем примере данные экспортируются с помощью интерактивного режима Azure AD, указывающего на имя пользователя, который представляет учетную запись AAD.The following example exports data using Azure AD interactive mode indicating username where user represents an AAD account. Это тот же пример, который использовался в предыдущем разделе: Azure Active Directory имя пользователя и пароль.This is the same example used in the previous section: Azure Active Directory Username and Password.

    Для интерактивного режима требуется ввод пароля вручную или для учетных записей с включенной многофакторной проверкой подлинности выполните настроенный метод аутентификации MFA.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 
    

    Если пользователь Azure AD — это федеративный домен, использующий учетную запись Windows, имя пользователя, необходимое в командной строке, содержит учетную запись домена (например joe@contoso.com , см. ниже):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 
    

    Если гостевые пользователи существуют в определенной службе Azure AD и являются частью группы, которая существует в базе данных SQL, которая имеет разрешения базы данных для выполнения команды bcp, используется псевдоним гостевого пользователя (например, *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] " — определяет одно или несколько указаний для использования во время массового импорта данных в таблицу или представление.-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])
    Порядок сортировки данных в файле данных.The sort order of the data in the data file. Производительность массового импорта увеличивается, если импортируемые данные упорядочены согласно кластеризованному индексу таблицы (при наличии).Bulk import performance is improved if the data being imported is sorted according to the clustered index on the table, if any. Если файл данных отсортирован в порядке, отличном от порядка ключа кластеризованного индекса, или если в таблице отсутствует кластеризованный индекс, то предложение ORDER пропускается.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. В целевой таблице должны быть указаны имена столбцов.The column names supplied must be valid column names in the destination table. По умолчанию программа bcp предполагает, что файл данных не упорядочен.By default, bcp assumes the data file is unordered. Для оптимизированного массового импорта SQL ServerSQL Server , помимо прочего, проверяет сортировку импортируемых данных.For optimized bulk import, SQL ServerSQL Server also validates that the imported data is sorted.

  • ROWS_PER_BATCH = bbROWS_PER_BATCH = bb
    Количество строк данных в каждом пакете (значение bb).Number of rows of data per batch (as bb). Используется в случае, если не указан параметр -b , что приводит к тому, что весь файл данных отправляется на сервер в ходе одной транзакции.Used when -b is not specified, resulting in the entire data file being sent to the server as a single transaction. Сервер оптимизирует массовую загрузку в соответствии со значением bb.The server optimizes the bulk load according to the value bb. По умолчанию значение аргумента ROWS_PER_BATCH неизвестно.By default, ROWS_PER_BATCH is unknown.

  • KILOBYTES_PER_BATCH = ccKILOBYTES_PER_BATCH = cc
    Приблизительный объем данных в каждом пакете в килобайтах (значение cc).Approximate number of kilobytes of data per batch (as cc). По умолчанию, значение KILOBYTES_PER_BATCH неизвестно.By default, KILOBYTES_PER_BATCH is unknown.

  • TABLOCKTABLOCK
    Указывает, что при выполнении массового обновления на период операции массовой загрузки будет получена блокировка на уровне таблицы. В противном случае запрашивается блокировка на уровне строки.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. Применение этого указания значительно повышает производительность, так как удержание блокировки в течение операции массового копирования уменьшает вероятность состязаний блокировок в таблице.This hint significantly improves performance because holding a lock for the duration of the bulk-copy operation reduces lock contention on the table. Если таблица не имеет индексов и указано ключевое слово TABLOCK , загрузка в таблицу может производиться параллельно несколькими клиентами.A table can be loaded concurrently by multiple clients if the table has no indexes and TABLOCK is specified. По умолчанию работа блокировки определяется параметром таблицы table lock on bulk load.By default, locking behavior is determined by the table option table lock on bulk load.

    Примечание

    Если целевая таблица представляет собой кластеризованный индекс columnstore, подсказка TABLOCK для параллельной загрузки сразу нескольких клиентов не требуется, так как каждый параллельный поток назначается отдельной группе строк в индексе и загружает в нее данные.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. Дополнительные сведения см. в справочных материалах по индексу columnstore.Please refer to columnstore index conceptual topics for details,

    CHECK_CONSTRAINTSCHECK_CONSTRAINTS
    Указывает, что при выполнении операции массового импорта будет выполняться проверка всех ограничений целевой таблицы или представления.Specifies that all constraints on the target table or view must be checked during the bulk-import operation. Если указание CHECK_CONSTRAINTS не задано, то все ограничения CHECK и FOREIGN KEY пропускаются, и после выполнения операции ограничение таблицы отмечается как ненадежное.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.

    Примечание

    Ограничения UNIQUE, PRIMARY KEY и NOT NULL проверяются в любом случае.UNIQUE, PRIMARY KEY, and NOT NULL constraints are always enforced.

    На некотором этапе понадобится проверить ограничения во всей таблице.At some point, you will need to check the constraints on the entire table. Если таблица была непустой до операции массового импорта данных, стоимость повторной проверки правильности ограничения может превысить стоимость применения ограничений CHECK к добавочным данным.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. Поэтому корпорация Майкрософт рекомендует включить проверку ограничений во время выполнения добавочного массового импорта данных.Therefore, we recommend that normally you enable constraint checking during an incremental bulk import.

    Отключение проверки ограничений (настройка по умолчанию) может потребоваться в тех ситуациях, когда входные данные содержат строки, нарушающие эти ограничения.A situation in which you might want constraints disabled (the default behavior) is if the input data contains rows that violate constraints. Импорт данных можно выполнить с отключенными ограничениями CHECK, после чего использовать инструкции языка Transact-SQLTransact-SQL для удаления недопустимых значений.With CHECK constraints disabled, you can import the data and then use Transact-SQLTransact-SQL statements to remove data that is not valid.

    Примечание

    Теперь программа bcp производит проверку данных, которые могут привести к ошибкам в работе существующих скриптов, если файлы данных будут содержать недопустимые данные.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.

    Примечание

    Параметр -m max_errors не применяется при проверке ограничений.The -m max_errors switch does not apply to constraint checking.

  • FIRE_TRIGGERSFIRE_TRIGGERS
    Применяется вместе с аргументом in и указывает, что в течение операции массового копирования будут работать триггеры Insert, определенные в целевой таблице.Specified with the in argument, any insert triggers defined on the destination table will run during the bulk-copy operation. Если параметр FIRE_TRIGGERS не указан, то триггеры Insert выполняться не будут.If FIRE_TRIGGERS is not specified, no insert triggers will run. Параметр FIRE_TRIGGERS для аргументов out, queryoutи format не учитывается.FIRE_TRIGGERS is ignored for the out, queryout, and format arguments.

-i вставка_файла -i input_file
Указывает имя файла ответов, содержащего ответы на вопросы командной строки для каждого поля данных при выполнении массового копирования в интерактивном режиме, когда не указаны параметры ( -n, -c, -wили -N ).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).

Если параметр input_file начинается с дефиса (-) или косой черты (/), не ставьте пробел между -e и значением input_file .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
Указывает, что пустые столбцы во время данной операции должны сохранить значение NULL вместо любых вставляемых значений столбцов по умолчанию.Specifies that empty columns should retain a null value during the operation, rather than have any default values for the columns inserted. Дополнительные сведения см. в разделе Сохранение значений NULL или использование значений по умолчанию при массовом импорте данных (SQL Server).For more information, see Keep Nulls or Use Default Values During Bulk Import (SQL Server).

-K намерение_приложения -K application_intent
Объявляет тип рабочей нагрузки приложения при соединении с сервером.Declares the application workload type when connecting to a server. Единственным возможным значением является ReadOnly.The only value that is possible is ReadOnly. Если параметр -K не указан, программа bcp не будет поддерживать соединение с вторичной репликой в группе доступности AlwaysOn.If -K is not specified, the bcp utility will not support connectivity to a secondary replica in an Always On availability group. Дополнительные сведения см. в разделе Активные вторичные реплики: доступные только для чтения вторичные реплики (группы доступности AlwaysOn).For more information, see Active Secondaries: Readable Secondary Replicas (Always On Availability Groups).

-l login_timeout -l login_timeout
Указывает время ожидания входа.Specifies a login timeout. Параметр -l задает время ожидания (в секундах) для входа в SQL Server при попытке подключения к серверу.The -l option specifies the number of seconds before a login to SQL Server times out when you try to connect to a server. Время ожидания входа по умолчанию — 15 секунд.The default login timeout is 15 seconds. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534.The login timeout must be a number between 0 and 65534. Если указанное значение не является числом или выходит за пределы указанного диапазона, bcp выдает сообщение об ошибке.If the value supplied is not numeric or does not fall into that range, bcp generates an error message. Значение 0 указывает бесконечное время ожидания.A value of 0 specifies an infinite timeout.

-L последний_ряд -L last_row
Указывает номер последней строки для экспорта из таблицы или импорта из файла данных.Specifies the number of the last row to export from a table or import from a data file. Значение параметра должно быть больше (>) 0, но меньше (<) или равно (=) номеру последней строки.This parameter requires a value greater than (>) 0 but less than (<) or equal to (=) the number of the last row. Если параметр отсутствует, по умолчанию используется последняя строка файла.In the absence of this parameter, the default is the last row of the file.

Параметрlast_row может иметь положительное целое значение до 2^63-1.last_row can be a positive integer with a value up to 2^63-1.

-m **максимальное_количество_ошибок** -m max_errors
Указывает максимальное количество синтаксических ошибок, которые могут произойти до отмены операции bcp .Specifies the maximum number of syntax errors that can occur before the bcp operation is canceled. Синтаксическая ошибка подразумевает ошибку преобразования данных в целевой тип данных.A syntax error implies a data conversion error to the target data type. В общее количество ошибок max_errors не включаются ошибки, которые могут быть обнаружены только на сервере, например нарушения ограничений.The max_errors total excludes any errors that can be detected only at the server, such as constraint violations.

Строка, которую нельзя скопировать с помощью программы bcp , не обрабатывается и считается одной ошибкой.A row that cannot be copied by the bcp utility is ignored and is counted as one error. Если параметр не указан, то используется значение по умолчанию, равное 10.If this option is not included, the default is 10.

Примечание

Параметр -m , кроме того, не применяется для преобразования типов данных money или bigint .The -m option also does not apply to converting the money or bigint data types.

-n-n
Выполняет операцию массового копирования, используя собственные типы данных (базы данных).Performs the bulk-copy operation using the native (database) data types of the data. Этот параметр не запрашивает тип данных для каждого поля, он использует собственные значения.This option does not prompt for each field; it uses the native values.

Дополнительные сведения см. в разделе Использование собственного формата для импорта и экспорта данных (SQL Server).For more information, see Use Native Format to Import or Export Data (SQL Server).

-N-N
Выполняет операцию массового копирования, используя собственные типы данных (базы данных) для несимвольных данных и символы Юникода для символьных данных.Performs the bulk-copy operation using the native (database) data types of the data for noncharacter data, and Unicode characters for character data. Этот параметр предлагает более высокопроизводительную альтернативу параметру -w и предназначен для передачи данных с одного экземпляра SQL ServerSQL Server на другой с помощью файла данных.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. Он не запрашивает тип данных каждого поля.It does not prompt for each field. Используйте этот параметр при передаче данных, которые содержат символы национального алфавита ANSI, а также, чтобы повысить производительность работы в собственном режиме.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.

Дополнительные сведения см. в разделе Использование собственного формата Юникод для импорта или экспорта данных (SQL Server).For more information, see Use Unicode Native Format to Import or Export Data (SQL Server).

Если выполнить экспорт, а затем импорт данных одной и той же схемы таблицы с помощью программы bcp.exe с параметром -N, может появиться предупреждающее сообщение об усечении при наличии символьного столбца фиксированной длины в кодировке, отличной от Юникода (например, char(10) ).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)).

Это предупреждение можно пропустить.The warning can be ignored. Одним из способов его устранения является применение аргумента командной строки -n вместо -N.One way to resolve this warning is to use -n instead of -N.

-o выходнойфайл_ -o output_file
Указывает имя файла, который принимает перенаправленные из командной строки выходные данные.Specifies the name of a file that receives output redirected from the command prompt.

Если параметр output_file начинается с дефиса (-) или косой черты (/), не ставьте пробел между -e и значением output_file .If output_file begins with a hyphen (-) or a forward slash (/), do not include a space between -o and the output_file value.

-P пароль -P password
Указывает пароль для идентификатора имени входа.Specifies the password for the login ID. Если данный параметр не указан, команда bcp запрашивает пароль.If this option is not used, the bcp command prompts for a password. Если этот параметр используется в конце командной строки без указания пароля, программа bcp применяет пароль по умолчанию (NULL).If this option is used at the end of the command prompt without a password, bcp uses the default password (NULL).

Важно!

Не используйте пустые пароли.Do not use a blank password. Выбирайте надежные пароли.Use a strong password.

Чтобы скрыть пароль, не указывайте параметр -P вместе с параметром -U .To mask your password, do not specify the -P option along with the -U option. Вместо этого после ввода команды bcp с параметром -U и другими параметрами (не указывая -P) нажмите клавишу ВВОД, и команда предложит ввести пароль.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. Этот метод обеспечивает скрытие пароля при вводе.This method ensures that your password will be masked when it is entered.

Если параметр password начинается с дефиса (-) или косой черты (/), не включайте пробел между -P и значением password .If password begins with a hyphen (-) or a forward slash (/), do not add a space between -P and the password value.

-q-q
Выполняет инструкцию SET QUOTED_IDENTIFIERS ON в соединении между служебной программой bcp и экземпляром SQL ServerSQL Server.Executes the SET QUOTED_IDENTIFIERS ON statement in the connection between the bcp utility and an instance of SQL ServerSQL Server. Используйте этот параметр для указания базы данных, владельца, таблицы или имени представления, содержащих пробел или одинарную кавычку.Use this option to specify a database, owner, table, or view name that contains a space or a single quotation mark. Заключите все имя таблицы или представления, состоящее из трех частей, в кавычки ("").Enclose the entire three-part table or view name in quotation marks ("").

Чтобы указать имя базы данных, содержащее пробел или одинарные кавычки, следует использовать параметр -q.To specify a database name that contains a space or single quotation mark, you must use the -q option.

-q не применяется к значениям, переданным в -d.-q does not apply to values passed to -d.

Дополнительные сведения см. в подразделе " Примечания" ниже.For more information, see Remarks, later in this topic.

-r условиестроки_ -r row_term
Указывает признак конца строки.Specifies the row terminator. Значением по умолчанию является \n (символ перевода строки).The default is \n (newline character). Используйте этот параметр, чтобы переопределить признак конца строки по умолчанию.Use this parameter to override the default row terminator. Дополнительные сведения см. в разделе Определение признаков конца поля и строки (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).

Если в команде bcp.exe указан признак конца строки в шестнадцатеричном виде, то значение будет усечено до 0x00.If you specify the row terminator in hexadecimal notation in a bcp.exe command, the value will be truncated at 0x00. Например, если указать значение 0x410041, то будет использовано значение 0x41.For example, if you specify 0x410041, 0x41 will be used.

Если параметр row_term начинается с дефиса (-) или косой черты (/), не ставьте пробел между -r и значением row_term .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
Указывает, что массовое копирование в SQL ServerSQL Server данных в денежном формате, в формате даты и времени выполняется с помощью регионального формата, определенного настройками локали клиентского компьютера.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. По умолчанию региональные настройки не учитываются.By default, regional settings are ignored.

-S имя_сервера [\ имя_экземпляра ] — указывает экземпляр SQL ServerSQL Server, к которому выполняется подключение.-S server_name [\instance_name] Specifies the instance of SQL ServerSQL Server to which to connect. Если сервер не указан, программа bcp выполняет подключение к экземпляру SQL ServerSQL Server по умолчанию на локальном компьютере.If no server is specified, the bcp utility connects to the default instance of SQL ServerSQL Server on the local computer. Этот параметр необходим, если команда bcp выполняется с удаленного компьютера в сети или с локального именованного экземпляра.This option is required when a bcp command is run from a remote computer on the network or a local named instance. Чтобы подключиться к экземпляру по умолчанию SQL ServerSQL Server на сервере, укажите только server_name.To connect to the default instance of SQL ServerSQL Server on a server, specify only server_name. Чтобы подключиться к именованному экземпляру SQL ServerSQL Server, укажите имя_сервера \ имя_экземпляра.To connect to a named instance of SQL ServerSQL Server, specify server_name\instance_name.

-t условиеполя_ -t field_term
Указывает признак конца поля.Specifies the field terminator. Значением по умолчанию является \t (символ табуляции).The default is \t (tab character). Используйте этот параметр, чтобы переопределить признак конца поля по умолчанию.Use this parameter to override the default field terminator. Дополнительные сведения см. в разделе Определение признаков конца поля и строки (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).

Если в команде bcp.exe указан признак конца поля в шестнадцатеричном виде, то значение будет усечено до 0x00.If you specify the field terminator in hexadecimal notation in a bcp.exe command, the value will be truncated at 0x00. Например, если указать значение 0x410041, то будет использовано значение 0x41.For example, if you specify 0x410041, 0x41 will be used.

Если параметр field_term начинается с дефиса (-) или косой черты (/), не ставьте пробел между -r и значением field_term .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
Указывает, что программа bcp устанавливает доверительное соединение с SQL ServerSQL Server с использованием встроенной безопасности.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Не требуются учетные данные безопасности для сетевого пользователя, параметры login_idи password .The security credentials of the network user, login_id, and password are not required. Если параметр -T не указан, для входа необходимо указать -U и -P .If -T is not specified, you need to specify -U and -P to successfully log in.

Важно!

Если программа bcp подключается к SQL ServerSQL Server с помощью доверенного соединения, используя встроенную безопасность, укажите параметр -T (доверенное соединение) вместо сочетания параметров user name и password .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. Когда программа bcp подключается к базе данных SQL или хранилищу данных SQL, использование проверки подлинности Windows или Azure Active Directory не поддерживается.When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not supported. Используйте параметры -U и -P .Use the -U and -P options.

-U идентификатор_входа -U login_id
Указывает идентификатор входа, используемый для соединения с SQL ServerSQL Server.Specifies the login ID used to connect to SQL ServerSQL Server.

Важно!

Если программа bcp подключается к SQL ServerSQL Server с помощью доверенного соединения, используя встроенную безопасность, укажите параметр -T (доверенное соединение) вместо сочетания параметров user name и password .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. Когда программа bcp подключается к базе данных SQL или хранилищу данных SQL, использование проверки подлинности Windows или Azure Active Directory не поддерживается.When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not supported. Используйте параметры -U и -P .Use the -U and -P options.

-v-v
Выводит номер версии и сведения об авторских правах для служебной программы bcp .Reports the bcp utility version number and copyright.

-V (80 | 90 | 100 | 110 | 120 | 130 )-V (80 | 90 | 100 | 110 | 120 | 130 )
Выполняет операцию массового копирования, используя типы данных более ранней версии SQL ServerSQL Server.Performs the bulk-copy operation using data types from an earlier version of SQL ServerSQL Server. Этот параметр не запрашивает тип данных каждого поля, он использует значения по умолчанию.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 2005 (9.x)SQL Server 2005 (9.x)90 = SQL Server 2005 (9.x)SQL Server 2005 (9.x)

100 = SQL Server 2008SQL Server 2008 и 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)

Например, чтобы создать данные для типов, не поддерживаемых SQL Server 2000 (8.x)SQL Server 2000 (8.x), но введенных в более поздних версиях SQL ServerSQL Server, используйте параметр -V80.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.

Дополнительные сведения см. в разделе Импорт данных в собственном и символьном формате из предыдущих версий SQL Server.For more information, see Import Native and Character Format Data from Earlier Versions of SQL Server.

-w-w
Выполняет операцию массового копирования, используя символы Юникода.Performs the bulk copy operation using Unicode characters. При использовании этого параметра не запрашивается тип данных каждого поля, для хранения данных используется тип nchar , отсутствуют префиксы, в качестве разделителя полей используется символ табуляции \t , а в качестве признака конца строки — символ новой строки \n .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 не совместим с -c.-w is not compatible with -c.

Дополнительные сведения см. в разделе Использование символьного формата Юникод для импорта и экспорта данных (SQL Server).For more information, see Use Unicode Character Format to Import or Export Data (SQL Server).

-x-x
При использовании вместе с параметрами format и -f format_file приводит к созданию файла форматирования на основе XML. По умолчанию создается файл форматирования в формате, отличном от XML.Used with the format and -f format_file options, generates an XML-based format file instead of the default non-XML format file. Параметр -x не работает при импорте или экспорте данных.The -x does not work when importing or exporting data. Применение этого параметра без параметров format и -f format_file приведет к ошибке.It generates an error if used without both format and -f format_file.

ПримечанияRemarks

Программа bcp 13.0 устанавливается при установке средств MicrosoftMicrosoftSQL Server 2017SQL Server 2017 .The bcp 13.0 client is installed when you install MicrosoftMicrosoftSQL Server 2017SQL Server 2017 tools. Если установлены средства как SQL Server 2017SQL Server 2017 , так и более ранней версии SQL ServerSQL Server, то в зависимости от значения переменной среды PATH вместо bcp 13.0 необходимо использовать более раннюю версию клиента bcp .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. Переменная среды определяет набор каталогов, используемых Windows для поиска исполняемых файлов.This environment variable defines the set of directories used by Windows to search for executable files. Чтобы определить используемую версию, запустите в командной строке Windows команду bcp /v .To discover which version you are using, run the bcp /v command at the Windows Command Prompt. Сведения о настройке пути для команды в переменной среды PATH см. в справке Windows.For information about how to set the command path in the PATH environment variable, see Windows Help.

Служебную программу bcp можно скачать отдельно от пакета дополнительных компонентов Microsoft SQL Server 2016.The bcp utility can also be downloaded separately from the Microsoft SQL Server 2016 Feature Pack. Выберите ENU\x64\MsSqlCmdLnUtils.msi или ENU\x86\MsSqlCmdLnUtils.msi.Select either ENU\x64\MsSqlCmdLnUtils.msi or ENU\x86\MsSqlCmdLnUtils.msi.

XML-файлы форматирования поддерживаются только при установке средств SQL ServerSQL Server вместе с собственным клиентом SQL ServerSQL Server .XML format files are only supported when SQL ServerSQL Server tools are installed together with SQL ServerSQL Server Native Client.

Сведения о том, как найти и запустить программу bcp, а также соглашение о синтаксисе программ командной строки см. в разделе Справочник по программе командной строки (компонент Database Engine).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).

Дополнительные сведения о подготовке данных к массовому импорту или экспорту см. в разделе Подготовка данных к массовому экспорту или импорту (SQL Server).For information on preparing data for bulk import or export operations, see Prepare Data for Bulk Export or Import (SQL Server).

Сведения о том, когда в журнале транзакций регистрируются операции вставки строк, выполняемые при массовом импорте, см. в разделе Предварительные условия для минимального протоколирования массового импорта данных.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.

Поддержка собственного формата файлов данныхNative Data File Support

В SQL Server 2017SQL Server 2017программа bcp поддерживает только собственные файлы данных, совместимые с SQL Server 2000 (8.x)SQL Server 2000 (8.x), SQL Server 2005 (9.x)SQL Server 2005 (9.x), SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2и SQL Server 2012 (11.x)SQL Server 2012 (11.x).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 2005 (9.x)SQL Server 2005 (9.x), SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2, and SQL Server 2012 (11.x)SQL Server 2012 (11.x).

Вычисляемые столбцы и столбцы типа timestampComputed Columns and timestamp Columns

При выполнении импорта значений в файле данных для вычисляемых столбцов и столбцов типа timestamp столбцы пропускаются, и SQL ServerSQL Server присваивает значения автоматически.Values in the data file being imported for computed or timestamp columns are ignored, and SQL ServerSQL Server automatically assigns values. Если файл данных не содержит значений для вычисляемых столбцов или столбцов типа timestamp в таблице, следует использовать файл форматирования, в котором будет указано, что вычисляемые столбцы или столбцы типа timestamp в таблице должны быть пропущены при импорте данных. SQL ServerSQL Server автоматически присвоит значения для столбца.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.

При массовом копировании вычисляемые столбцы и столбцы типа timestamp копируются из SQL ServerSQL Server в файл данных обычным способом.Computed and timestamp columns are bulk copied from SQL ServerSQL Server to a data file as usual.

Указание идентификаторов, содержащих пробелы или кавычкиSpecifying Identifiers That Contain Spaces or Quotation Marks

SQL ServerSQL Server могут содержать такие символы, как внедренные пробелы и кавычки.identifiers can include characters such as embedded spaces and quotation marks. Такие идентификаторы должны обрабатываться следующим образом.Such identifiers must be treated as follows:

  • Если идентификатор или имя файла содержит пробел или кавычку в командной строке, заключите идентификатор в двойные кавычки ("").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 ("").

    Например, следующая команда bcp out создает файл данных с именем Currency Types.dat: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  
    
  • Чтобы указать имя базы данных, содержащее пробел или кавычки, необходимо использовать параметр -q .To specify a database name that contains a space or quotation mark, you must use the -q option.

  • Для имен владельца, таблицы или представления, содержащих внедренные пробелы или кавычки, также можно:For owner, table, or view names that contain embedded spaces or quotation marks, you can either:

    • указать параметр -q ; илиSpecify the -q option, or

    • заключить имя владельца, таблицы или представления в квадратные скобки ([]) внутри кавычек.Enclose the owner, table, or view name in brackets ([]) inside the quotation marks.

Проверка данныхData Validation

Теперь программаbcp производит проверку данных, которые могут привести к ошибкам в работе существующих скриптов, если файлы данных будут содержать недопустимые данные.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. Например, программа bcp проверяет, что:For example, bcp now verifies that:

  • собственные представления типов данных float или real являются допустимыми;The native representation of float or real data types are valid.

  • Данные в Юникоде имеют четную длину.Unicode data has an even-byte length.

Возможно, те недопустимые данные, импорт которых мог выполняться операцией массового импорта в предыдущих версиях SQL ServerSQL Server , теперь не удастся загрузить, тогда как в предыдущих версиях ошибка возникала только при попытке клиента подключиться к недопустимым данным.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. Добавленная проверка снижает вероятность непредвиденных ситуаций во время запроса данных после массовой загрузки.The added validation minimizes surprises when querying the data after bulk load.

Массовый экспорт или импорт документов SQLXMLBulk Exporting or Importing SQLXML Documents

Чтобы выполнить массовый экспорт или импорт SQLXML-данных используйте один из следующих типов данных в файле форматирования:To bulk export or import SQLXML data, use one of the following data types in your format file.

Тип данныхData type ДействиеEffect
SQLCHAR или SQLVARYCHARSQLCHAR or SQLVARYCHAR Данные отправляются в кодовой странице клиента или кодовой странице, определенной параметрами сортировки.The data is sent in the client code page or in the code page implied by the collation). Результат тот же, что и при указании параметра -c без указания файла форматирования.The effect is the same as specifying the -c switch without specifying a format file.
SQLNCHAR или SQLNVARCHARSQLNCHAR or SQLNVARCHAR Данные отправляются в Юникоде.The data is sent as Unicode. Результат тот же, что и при указании параметра -w без указания файла форматирования.The effect is the same as specifying the -w switch without specifying a format file.
SQLBINARY или SQLVARYBINSQLBINARY or SQLVARYBIN Данные отправляются без преобразования.The data is sent without any conversion.

РазрешенияPermissions

Для операции bcp out необходимо разрешение SELECT на исходную таблицу.A bcp out operation requires SELECT permission on the source table.

Для операции bcp in необходимы как минимум разрешения SELECT/INSERT на целевую таблицу.A bcp in operation minimally requires SELECT/INSERT permissions on the target table. Кроме того, разрешение ALTER TABLE необходимо в следующих случаях.In addition, ALTER TABLE permission is required if any of the following is true:

  • Ограничения существуют, а указание CHECK_CONSTRAINTS не задано.Constraints exist and the CHECK_CONSTRAINTS hint is not specified.

    Примечание

    Ограничения отключены по умолчанию.Disabling constraints is the default behavior. Чтобы явно включить ограничения, используйте параметр -h с подсказкой CHECK_CONSTRAINTS.To enable constraints explicitly, use the -h option with the CHECK_CONSTRAINTS hint.

  • Триггеры существуют, а указание FIRE_TRIGGER не задано.Triggers exist and the FIRE_TRIGGER hint is not specified.

    Примечание

    По умолчанию, триггеры не срабатывают.By default, triggers are not fired. Чтобы запустить триггеры явно, используйте параметр -h с подсказкой FIRE_TRIGGERS.To fire triggers explicitly, use the -h option with the FIRE_TRIGGERS hint.

  • Используйте параметр -E , чтобы выполнить импорт значений идентификаторов из файла данных.You use the -E option to import identity values from a data file.

Примечание

Необходимость наличия разрешения ALTER TABLE на целевую таблицу было новой особенностью SQL Server 2005 (9.x)SQL Server 2005 (9.x).Requiring ALTER TABLE permission on the target table was new in SQL Server 2005 (9.x)SQL Server 2005 (9.x). Если у учетной записи пользователя нет разрешений ALTER на целевую таблицу, это новое требование может привести к ошибке скриптов bcp , не применяющих принудительно триггеры и проверку ограничений.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.

Рекомендации для символьного режима (-c) и собственного режима (-n)Character Mode (-c) and Native Mode (-n) Best Practices

Этот раздел содержит рекомендации для символьного режима (-c) и собственного режима (-n).This section has recommendations for to character mode (-c) and native mode (-n).

  • (Администратор/пользователь) Если возможно, используйте собственный формат (-n) во избежание проблем с разделением.(Administrator/User) When possible, use native format (-n) to avoid the separator issue. Используйте собственный формат для экспорта и импорта с помощью SQL ServerSQL Server.Use the native format to export and import using SQL ServerSQL Server. Экспортируйте данные из SQL ServerSQL Server с помощью параметра - c или -w, если данные планируется импортировать в базу данных, отличную отSQL ServerSQL Server .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.

  • (Администратор) Проверьте данные при использовании BCP OUT.(Administrator) Verify data when using BCP OUT. Например, при использовании BCP OUT, BCP IN, а затем BCP OUT убедитесь, что данные экспортируются правильно и значения признака конца не используются как часть какого-либо значения данных.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. Попробуйте переопределить признаки конца по умолчанию (с помощью параметров -t и - r) на случайные шестнадцатеричные значения, чтобы избежать конфликта между значениями признака конца и значениями данных.Please consider overriding the default terminators (using -t and -r options) with random hexadecimal values to avoid conflicts between terminator values and data values.

  • (Пользователь) Используйте длинные и уникальные признаки конца (любая последовательность байт или символов), чтобы свести к минимуму возможность конфликта с фактическим строковым значением.(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. Это можно выполнить с помощью параметров -t и -r.This can be done by using the -t and -r options.

ПримерыExamples

Этот раздел содержит следующие примеры.This section contains the following examples:

  • A.A. Определение версии служебной программы bcpIdentify bcp utility version

  • Б.B. Копирование строк из таблицы в файл данных (с помощью доверительного соединения)Copying table rows into a data file (with a trusted connection)

  • В.C. Копирование строк из таблицы в файл данных (в смешанном режиме проверки подлинности)Copying table rows into a data file (with Mixed-mode Authentication)

  • Г.D. Копирование данных из файла в таблицуCopying data from a file to a table

  • Д.E. Копирование отдельного столбца в файл данныхCopying a specific column into a data file

  • Е.F. Копирование отдельной строки в файл данныхCopying a specific row into a data file

  • Ж.G. Копирование данных из запроса в файл данныхCopying data from a query to a data file

  • З.H. Создание файлов форматированияCreating format files

  • И.I. Использование файла форматирования для массового импорта данных c помощью программы bcpUsing a format file to bulk import with bcp

Пример условий тестаExample Test Conditions

В примерах ниже используется образец базы данных WideWorldImporters для SQL Server (начиная с 2016) и База данных SQL Azure.The examples below make use of the WideWorldImporters sample database for SQL Server (starting 2016) and Azure SQL Database. WideWorldImportersможно скачать из 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. Синтаксис для восстановления образца базы данных см. в разделе RESTORE (Transact-SQL) .See RESTORE (Transact-SQL) for the syntax to restore the sample database. Если не указано иное, в этом примере предполагается, что используется проверка подлинности Windows и существует доверительное подключение к экземпляру сервера, на котором запускается команда bcp .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. Каталог с именем D:\BCP будет использоваться во многих примерах.A directory named D:\BCP will be used in many of the examples.

Приведенный ниже скрипт создает пустую копию таблицы WideWorldImporters.Warehouse.StockItemTransactions, а затем добавляет ограничение первичного ключа.The script below creates an empty copy of the WideWorldImporters.Warehouse.StockItemTransactions table and then adds a primary key constraint. Запустите следующий скрипт T-SQL в SQL Server Management Studio (SSMS):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

Примечание

Усеките таблицу StockItemTransactions_bcp по мере необходимости.Truncate the StockItemTransactions_bcp table as needed.

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

A.A. Определение версии служебной программы bcpIdentify bcp utility version

В командной строке введите следующую команду:At a command prompt, enter the following command:

bcp -v

Б.B. Копирование строк из таблицы в файл данных (с помощью доверительного соединения)Copying table rows into a data file (with a trusted connection)

В следующих примерах показано применение параметра out к таблице WideWorldImporters.Warehouse.StockItemTransactions .The following examples illustrates the out option on the WideWorldImporters.Warehouse.StockItemTransactions table.

  • ОсновнойBasic
    В этом примере создается файл данных с именем StockItemTransactions_character.bcp , и в него копируются данные таблицы в символьном формате.This example creates a data file named StockItemTransactions_character.bcp and copies the table data into it using character format.

    В командной строке введите следующую команду:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -T
    
  • РасширенныйExpanded
    В этом примере создается файл данных с именем StockItemTransactions_native.bcp , и в него копируются данные таблицы в собственном формате.This example creates a data file named StockItemTransactions_native.bcp and copies the table data into it using the native format. Пример также указывает максимальное количество синтаксических ошибок, файл ошибок и выходной файл.The example also: specifies the maximum number of syntax errors, an error file, and an output file.

    В командной строке введите следующую команду: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
    

Просмотрите Error_out.log и Output_out.log.Review Error_out.log and Output_out.log. Error_out.log должно быть пустым.Error_out.log should be blank. Сравните размеры файлов между StockItemTransactions_character.bcp и StockItemTransactions_native.bcp.Compare the file sizes between StockItemTransactions_character.bcp and StockItemTransactions_native.bcp.

В.C. Копирование строк из таблицы в файл данных (в смешанном режиме проверки подлинности)Copying table rows into a data file (with mixed-mode authentication)

В следующем примере показано применение параметра out к таблице WideWorldImporters.Warehouse.StockItemTransactions .The following example illustrates the out option on the WideWorldImporters.Warehouse.StockItemTransactions table. В этом примере создается файл данных с именем StockItemTransactions_character.bcp , и в него копируются данные таблицы в символьном формате.This example creates a data file named StockItemTransactions_character.bcp and copies the table data into it using character format.

В этом примере предполагается, что применяется смешанный режим проверки подлинности. Для указания идентификатора входа необходимо использовать параметр -U .The example assumes that you are using mixed-mode authentication, you must use the -U switch to specify your login ID. Кроме того, за исключением случаев, когда выполняется соединение с экземпляром, не являющимся экземпляром SQL ServerSQL Server по умолчанию на локальном компьютере, нужно использовать параметр -S , чтобы указать системное имя и (при необходимости) имя экземпляра.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.

В командной строке введите следующую команду: (система попросит вас ввести пароль)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. Копирование данных из файла в таблицуCopying data from a file to a table

В следующих примерах показано применение параметра in к таблице WideWorldImporters.Warehouse.StockItemTransactions_bcp с использованием созданных выше файлов.The following examples illustrate the in option on the WideWorldImporters.Warehouse.StockItemTransactions_bcp table using files created above.

  • BasicBasic
    В этом примере используется ранее созданный файл данных StockItemTransactions_character.bcp .This example uses the StockItemTransactions_character.bcp data file previously created.

    В командной строке введите следующую команду:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -T  
    
  • РасширенныйExpanded
    В этом примере используется ранее созданный файл данных StockItemTransactions_native.bcp .This example uses the StockItemTransactions_native.bcp data file previously created. Пример также использует указание TABLOCK, указывает размер пакета, максимальное количество синтаксических ошибок, файл ошибок и выходной файл.The example also: use the hint TABLOCK, specifies the batch size, the maximum number of syntax errors, an error file, and an output file.

    В командной строке введите следующую команду: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 
    

    Просмотрите Error_in.log и Output_in.log.Review Error_in.log and Output_in.log.

Д.E. Копирование отдельного столбца в файл данныхCopying a specific column into a data file

Чтобы выполнить копирование конкретного столбца, можно использовать параметр queryout .To copy a specific column, you can use the queryout option. Следующий пример копирует в файл данных из таблицы StockItemTransactionID только столбец Warehouse.StockItemTransactions .The following example copies only the StockItemTransactionID column of the Warehouse.StockItemTransactions table into a data file.

В командной строке введите следующую команду: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. Копирование отдельной строки в файл данныхCopying a specific row into a data file

Чтобы выполнить копирование конкретной строки, можно использовать параметр queryout .To copy a specific row, you can use the queryout option. Следующий пример копирует только строку человека с именем Amy Trefl из таблицы WideWorldImporters.Application.People в файл данных Amy_Trefl_c.bcp.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. Примечание. Параметр -d используется для идентификации базы данных.Note: the -d switch is used identify the database.

В командной строке введите следующую команду: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. Копирование данных из запроса в файл данныхCopying data from a query to a data file

Результирующий набор инструкции Transact-SQL копируется в файл данных с помощью параметра queryout .To copy the result set from a Transact-SQL statement to a data file, use the queryout option. Следующий пример копирует имена из таблицы WideWorldImporters.Application.People , упорядоченные по полному имени, в файл данных People.txt.The following example copies the names from the WideWorldImporters.Application.People table, ordered by full name, into the People.txt data file. Примечание. Параметр -t используется для создания файла с разделителями-запятыми.Note: the -t switch is used to create a comma delimited file.

В командной строке введите следующую команду: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. Создание файлов форматированияCreating format files

Следующий пример создает три разных файла форматирования для таблицы Warehouse.StockItemTransactions в базе данных WideWorldImporters.The following example creates three different format files for the Warehouse.StockItemTransactions table in the WideWorldImporters database. Просмотрите содержимое каждого из созданных файлов.Review the contents of each created file.

В командной строке введите следующие команды: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
 

Примечание

Для использования параметра -x необходима версия клиента bcp 9.0.To use the -x switch, you must be using a bcp 9.0 client. Дополнительные сведения об использовании клиента bcp 9.0 см. в разделе "Примечания".For information about how to use the bcp 9.0 client, see "Remarks."

Дополнительные сведения см. в разделах Файлы формата, отличные от XML (SQL Server) и XML-файлы форматирования (SQL Server).For more information, see Non-XML Format Files (SQL Server) and XML Format Files (SQL Server).

И.I. Использование файла форматирования для массового импорта данных c помощью программы bcpUsing a format file to bulk import with bcp

Чтобы использовать ранее созданный файл форматирования при выполнении импорта данных в экземпляр SQL ServerSQL Server, укажите параметр -f и параметр in .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. Например, следующая команда выполняет массовое копирование содержимого файла данных StockItemTransactions_character.bcpв копию таблицы Warehouse.StockItemTransactions_bcp с помощью ранее созданного файла форматирования StockItemTransactions_c.xml.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. Примечание. Параметр -L используется для импорта только первых 100 записей.Note: the -L switch is used to import only the first 100 records.

В командной строке введите следующую команду: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 

Примечание

Файлы форматирования используются в тех случаях, когда поля файла данных отличаются от столбцов таблицы, например: по количеству, порядку или типу данных.Format files are useful when the data file fields are different from the table columns; for example, in their number, ordering, or data types. Дополнительные сведения см в разделе Файлы форматирования для импорта или экспорта данных (SQL Server).For more information, see Format Files for Importing or Exporting Data (SQL Server).

К.J. Указание кодовой страницыSpecifying a code page

В следующем фрагменте кода показан импорт bcp с указанием страницы кода 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 , ...  

В следующем фрагменте кода показан экспорт bcp с указанием страницы кода 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 , ...  

Дополнительные примерыAdditional Examples

Следующие разделы содержат примеры использования программы bcp:The following topics contain examples of using bcp:
Форматы данных для массового экспорта или импорта (SQL Server)Data Formats for Bulk Import or Bulk Export (SQL Server)
 ● Использование собственного формата для импорта или экспорта данных (SQL Server) ● Use Native Format to Import or Export Data (SQL Server)
 ● Использование символьного формата для импорта или экспорта данных (SQL Server) ● Use Character Format to Import or Export Data (SQL Server)
 ● Использование собственного формата Юникода для импорта или экспорта данных (SQL Server) ● Use Unicode Native Format to Import or Export Data (SQL Server)
 ● Использование символьного формата Юникода для импорта или экспорта данных (SQL Server) ● Use Unicode Character Format to Import or Export Data (SQL Server)

Определение признаков конца поля и строки (SQL Server)Specify Field and Row Terminators (SQL Server)

Сохранение значений NULL или использование значений по умолчанию при массовом импорте данных (SQL Server)Keep Nulls or Use Default Values During Bulk Import (SQL Server)

Сохранение значений идентификаторов при массовом импорте данных (SQL Server)Keep Identity Values When Bulk Importing Data (SQL Server)

Файлы форматирования для импорта или экспорта данных (SQL Server)Format Files for Importing or Exporting Data (SQL Server))
 ● Создание файла форматирования (SQL Server) ● Create a Format File (SQL Server)
 ● Использование файла форматирования для массового импорта данных (SQL Server) ● Use a Format File to Bulk Import Data (SQL Server)
 ● Использование файла форматирования для пропуска столбца таблицы (SQL Server) ● Use a Format File to Skip a Table Column (SQL Server)
 ● Использование файла форматирования для пропуска поля данных (SQL Server) ● Use a Format File to Skip a Data Field (SQL Server)
 ● Использование файла форматирования для сопоставления столбцов таблицы с полями файла данных (SQL Server) ● Use a Format File to Map Table Columns to Data-File Fields (SQL Server)

Примеры массового импорта и экспорта XML-документов (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)

См. также:See Also

Подготовка данных к массовому экспорту или импорту (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)
Файлы форматирования для импорта или экспорта данных (SQL Server)Format Files for Importing or Exporting Data (SQL Server)

ОтзывыFeedback

needhelp_person_icon Форум клиентских средств SQLneedhelp_person_icon SQL Client Tools Forum

info_tip СправкаGet Help