Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
База данных SQL в Microsoft Fabric
Программа массового копирования (bcp) копирует данные между экземпляром SQL Server и файлом данных в указанном пользователем формате.
Используйте служебную программу bcp , чтобы импортировать большое количество новых строк в таблицы SQL Server или экспортировать данные из таблиц в файлы данных. За исключением случаев использования с параметром queryout , программа не требует знаний о Transact-SQL. Чтобы импортировать данные в таблицу, необходимо использовать файл формата, созданный для этой таблицы, или понять структуру таблицы и типы данных, допустимые для его столбцов.
Дополнительные сведения о том, какая версия bcp установлена в системе, требованиях к системе, а также о том, как получить bcp, см. в разделе "Скачать и установить программу bcp".
Note
Файлы данных bcp не содержат никаких сведений о схеме или формате. Если вы используете bcp для резервного копирования данных, а затем удалите или измените исходную таблицу, вам потребуется либо идентичное определение таблицы, либо файл форматирования для импорта данных обратно.
Сведения о соглашениях синтаксиса, используемых для синтаксиса bcp , см. в Transact-SQL соглашениях синтаксиса (Transact-SQL).
Как использовать bcp
Сведения об использовании bcp, включая примеры команд, см. в разделе "Как использовать служебную программу BCP".
Использование bcp в Linux и macOS
Сведения о том, как установить средства командной строки в macOS и Linux, см. в разделе «Установка инструментов командной строки SQL Server, таких как sqlcmd и bcp, на Linux».
Рекомендации по bcp для Linux и macOS
Терминатор поля — это вкладка (
\t).Конец строки является новой строкой (
\n).Для передачи SQL Server в SQL Server используйте собственный формат (
-n). Используйте формат символов (-c) только в том случае, если данные пересекаются в системе, отличной от SQL Server, или если файл данных не должен содержать расширенные символы. Дополнительные сведения см. в разделе «Лучшие практики для режима символов и собственного режима».Необходимо процитировать или скрыть обратную косую черту (
\) в аргументе командной строки. Например, чтобы указать новую строку в качестве пользовательского конца строки, используйте один из следующих механизмов:-r\\n-r"\n"-r'\n'
Поддержка TDS 8.0
SQL Server 2025 (17.x) предоставляет поддержку TDS 8.0 для служебной программы bcp .
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 ]
[ -D ]
[ -e err_file ]
[ -E ]
[ -f format_file ]
[ -F first_row ]
[ -G Microsoft Entra 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 ]
[ -u ]
[ -v ]
[ -V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170) ]
[ -w ]
[ -x ]
[ -Y [ s | m | o ] ]
[ -z ]
Параметры командной строки
В следующей таблице перечислены параметры командной строки, доступные в bcp, и какие операционные системы они поддерживают.
1Требуется bcp версии 18 или более поздней, которая поставляется с SQL Server 2025 (17.x).
2 ODBC 18.6.1.1 и более поздних версий.
Режим объекта и режим передачи
database_name
Имя базы данных, содержащей указанную таблицу или представление. Если этот параметр не указан, используется база данных по умолчанию для пользователя.
Можно также явным образом указать имя базы данных с помощью параметра -d.
schema
Имя владельца данной таблицы или представления. schema указывать не обязательно, если пользователь, выполняющий операцию, является владельцем указанной таблицы или представления. Если схема не указана, и пользователь, выполняющий операцию, не владеет указанной таблицей или представлением, SQL Server возвращает сообщение об ошибке, а операция отменяется.
table_name
Имя целевой таблицы при импорте данных в SQL Server (in) и исходную таблицу при экспорте данных из SQL Server (out).
view_name
Имя целевого представления при копировании данных в SQL Server (in) и исходное представление при копировании данных из SQL Server (out). При использовании в качестве назначения (in) представление поддерживается только в том случае, если все его столбцы ссылаются на одну таблицу. Это ограничение не применяется, если представление используется в качестве источника (out). Дополнительные сведения об ограничениях для копирования данных в представления см. в разделе INSERT.
"query"
Запрос Transact-SQL, возвращающий результирующий набор. Если запрос возвращает несколько результирующих наборов, то в файл данных будет скопирован только первый результирующий набор. Последующие результирующие наборы не учитываются. Используйте двойные кавычки для запроса и одинарные кавычки для элементов, встроенных в запрос. Кроме того, необходимо указать queryout при массовом копировании данных из запроса.
Запрос может ссылаться на хранимую процедуру до тех пор, пока все таблицы, на которые ссылается хранимая процедура, существуют перед выполнением инструкции bcp . Например, если хранимая процедура порождает временную таблицу, инструкция bcp завершается с ошибкой, поскольку временная таблица доступна только во время выполнения, а не во время запуска инструкции. В этом случае можно вставить результаты работы хранимой процедуры в таблицу, после чего использовать bcp для копирования данных из этой таблицы в файл данных.
в
Копирует данные из файла в таблицу базы данных или представление. Указывает направление массового копирования.
выход
Копирует данные из таблицы базы данных или представления в файл. Указывает направление массового копирования.
Если указать существующий файл, то файл перезаписывается. Когда программа bcp извлекает данные, она представляет пустую строку в виде null и строку NULL в виде пустой строки.
data_file
Полный путь к файлу данных. При массовом импорте данных в SQL Server файл данных содержит данные для копирования в указанную таблицу или представление. При массовом экспорте данных из SQL Server файл данных содержит данные, скопированные из таблицы или представления. Путь может содержать от 1 до 255 символов. Файл данных может содержать максимум 2^63 – 1 строк.
queryout
Копирует данные из запроса и должен быть указан только при массовом копировании данных из запроса.
format
Создает файл формата на основе указанных параметров (-n, -c-wили-N) и разделителей таблиц или представлений. При выполнении массового копирования данных программа bcp может обратиться к файлу форматирования, что позволяет избежать повторного ввода данных о формате в интерактивном режиме. Для параметра format требуется параметр -f; для создания файла формата XML также требуется параметр -x. Дополнительные сведения см. в статье "Создание файла форматирования с помощью bcp (SQL Server)". Необходимо указать nul в качестве значения (format nul).
-q
Выполняет инструкцию SET QUOTED_IDENTIFIER ON при соединении между служебной программой bcp и экземпляром SQL Server. Используйте этот параметр для указания базы данных, владельца, таблицы или имени представления, содержащих пробел или одинарную кавычку. Заключите всю трехчастную таблицу или название представления в кавычки ("").
Чтобы указать имя базы данных, содержащее пробел или одиночную кавычку, необходимо использовать опцию -q.
-q не применяется к значениям, передаваемым в -d.
Дополнительные сведения см. в разделе Примечания в этой статье.
Подключение и проверка подлинности
-S [server_name[\instance_name]]
Указывает имя экземпляра SQL Server, к которому нужно подключиться, или, если используется -D, DSN.
Если сервер не указан, программа bcp подключается к экземпляру SQL Server по умолчанию на локальном компьютере. Этот параметр требуется при выполнении команды bcp с удаленного компьютера в сети или локальном именованном экземпляре. Чтобы подключиться к экземпляру SQL Server по умолчанию на сервере, укажите только server_name. Чтобы подключиться к именованному экземпляру SQL Server, укажите <server_name>\<instance_name>.
-d database_name
Указывает базу данных, с которой надо соединиться. По умолчанию bcp подключается к базе данных по умолчанию. Если указать -d <database_name> и трехкомпонентное имя (database_name.schema.table, переданное в качестве первого параметра bcp), возникает ошибка, так как имя базы данных не удается указать дважды. Если database_name начинается с дефиса (-) или косой черты (/), не добавляйте пробел между -d именем базы данных.
-U login_id
Указывает идентификатор входа, используемый для подключения к SQL Server.
- P-пароль
Указывает пароль для имени пользователя. Если этот параметр не используется, команда bcp запросит пароль. Если этот параметр используется в конце командной строки без пароля, bcp использует пароль по умолчанию (NULL).
Important
Не используйте пустые пароли. Выбирайте надежные пароли.
Чтобы маскировать пароль, не указывайте параметр -P вместе с параметром -U. Вместо этого, после указания bcp вместе с -U параметром и другими переключателями (не указывайте -P, так как), нажмите клавишу ВВОД, и командная строка запрашивает пароль. Этот метод гарантирует, что пароль маскируется при вводе.
Если пароль начинается с дефиса (-) или косой черты (/), не добавляйте пробел между -P значением пароля .
В Linux и macOS, при использовании с опцией -G без -U, -P указывает файл, содержащий токен доступа Microsoft Entra (версии 17.8 и более поздних версий). Файл токена должен находиться в формате UTF-16LE (без BOM). Дополнительные сведения см. в разделе Аутентификация с помощью идентификатора Microsoft Entra в bcp.
-G
Область применения: База данных SQL Azure, Управляемый экземпляр SQL Azure, база данных SQL в Microsoft Fabric, Azure Synapse Analytics и SQL Server 2022 (16.x) и более поздние версии.
Этот параметр используется клиентом, чтобы указать, что пользователь проходит проверку подлинности с помощью идентификатора Microsoft Entra. Для -G этого параметра требуется bcp версии 14.0.3008.27 или более поздней версии. Чтобы определить версию, выполните bcp -v. Дополнительные сведения см. в статье Об использовании проверки подлинности Microsoft Entra с базой данных SQL или Azure Synapse Analytics или Об использовании проверки подлинности в базе данных SQL в Microsoft Fabric.
Полные сведения о проверке подлинности Microsoft Entra в bcp см. в разделе Аутентификация с помощью идентификатора Microsoft Entra в bcp.
-D
Значение, переданное в параметр bcp -S, интерпретируется как имя источника данных (DSN).
-D может отображаться в любом месте командной строки; Порядок относительно -S не имеет значения.
DSN можно использовать для следующих способов:
- Внедрение параметров драйвера для упрощения командной строки.
- Принудительное применение параметров драйвера, которые не доступны в командной строке, например
MultiSubnetFailover. - Помогите защитить конфиденциальные учетные данные от обнаружения в качестве аргументов командной строки.
Дополнительные сведения см. в статье о поддержке DSN в sqlcmd и bcp.
-К application_intent
Объявляет тип рабочей нагрузки приложения при соединении с сервером. Единственное возможное значение — это ReadOnly. Если не указать -K, программа bcp не поддерживает подключение к вторичной реплике в группе доступности AlwaysOn. Дополнительные сведения см. в разделе «Перенос рабочей нагрузки только для чтения на вторичную реплику группы доступности Always On».
-l login_timeout
Указывает время ожидания входа. Параметр -l указывает количество секунд до истечения времени ожидания входа в SQL Server при попытке подключения к серверу. Значение времени ожидания по умолчанию — 15 секунд. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534. Если указанное значение не является числовым или не попадает в этот диапазон, bcp создает сообщение об ошибке. Значение 0 указывает на бесконечное время ожидания.
-T
Указывает, что утилита bcp подключается к SQL Server с помощью доверенного подключения, используя интегрированную безопасность. Учетные данные безопасности сетевого пользователя, login_id и пароль не требуются. Если вы не указываете -T, необходимо указать -U и -P, чтобы успешно подключиться.
Important
Используйте -T только при подключении к SQL Server с интегрированным с Windows доверенным подключением. При подключении к Azure SQL Database или Azure Synapse Analytics -T (встроенная проверка подлинности Windows) не поддерживается. Для проверки подлинности Microsoft Entra для служб Azure или SQL Server 2022 (16.x) и более поздних версий используйте -G (см. проверку подлинности с помощью идентификатора Microsoft Entra в bcp).
-Y[s|m|o]
Применимо к: bcp версии 18 и более поздних версий, которая поставляется с SQL Server 2025 (17.x).
Указывает, используются ли подключения с TLS-шифрованием через сеть.
-Y может быть o (для Optional), m (для Mandatory, по умолчанию) или s (для Strict). Если вы не включаете -Y, то -Ym (для Mandatory) является значением по умолчанию.
-u
Применимо к: bcp версии 18 и более поздних версий, которая поставляется с SQL Server 2025 (17.x).
Сертификат сервера доверия. При использовании с параметром шифрования для подключения включает шифрование с помощью самозаверяющего сертификата сервера.
Представление данных
-c
Выполняет операцию, используя символьный тип данных. Этот параметр не запрашивает каждое поле. Он использует char в качестве типа хранилища без префиксов и использует \t (символ табуляции) в качестве разделителя полей и \r\n (новый символ) в качестве конца строки.
-c несовместим с -w.
Дополнительные сведения см. в разделе "Использование формата символов для импорта или экспорта данных (SQL Server)".
Советы по лучшим практикам см. в разделе Режим символов и родной режим: рекомендации по лучшим практикам.
-C { ACP | OEM | RAW | code_page }
Применяется только к Windows. Не поддерживается в Linux и macOS.
Указывает кодовую страницу данных в файле данных. Аргументcode_page имеет смысл только в том случае, если данные содержат столбцы типа char, varcharили text с символами, коды которых больше 127 или меньше 32.
Укажите имя сортировки для каждого столбца в файле формата, за исключением случаев, когда параметр 65001 имеет приоритет над спецификацией параметров сортировки или кодовой страницы.
| Значение кодовой страницы | Описание |
|---|---|
ACP |
ANSI/Microsoft Windows (ISO 1252). |
OEM |
Кодовая страница, используемая клиентом по умолчанию. Эта кодовая страница используется по умолчанию, если не указать -C. |
RAW |
Преобразование из одной кодовой страницы в другую не выполняется. Этот параметр является самым быстрым, так как преобразование не выполняется. |
<code_page> |
Конкретный номер кодовой страницы, например 850. Версии до SQL Server 2016 (13.x) не поддерживают кодовую страницу 65001 (кодировка UTF-8). Версии, начиная с 13, могут импортировать кодировку UTF-8 в более ранние версии SQL Server. |
-n
Выполняет операцию массового копирования, используя собственные типы данных (базы данных). Этот параметр не запрашивает данные для каждого поля отдельно. В нем используются родные значения.
Дополнительные сведения см. в статье "Использование собственного формата для импорта или экспорта данных (SQL Server)".
Для ознакомления с рекомендациями, см. раздел Лучшие практики для режима символов и собственного режима.
-N
Применяется только к Windows. Не поддерживается в Linux и macOS.
Выполняет операцию массового копирования, используя собственные типы данных (базы данных) для несимвольных данных и символы Юникода для символьных данных. Этот параметр предлагает более высокопроизводительную альтернативу параметру -w, а также предназначен для передачи данных из одного экземпляра SQL Server в другой с использованием файла данных. Он не запрашивает каждое поле. Используйте этот параметр при передаче данных, содержащих расширенные символы ANSI, и вы хотите воспользоваться преимуществами производительности собственного режима.
Дополнительные сведения см. в разделе Использование собственного формата Юникод для импорта и экспорта данных (SQL Server).
При экспорте и импорте данных в ту же схему таблицы с помощью bcp вы можете увидеть предупреждение об усечении, если имеется символьный столбец фиксированной длины, не использующий Юникод (например, -N).
Предупреждение можно игнорировать. Одним из способов устранения этого предупреждения является использование -n вместо -Nэтого.
-w
Выполняет операцию массового копирования с помощью символов Юникода. Этот параметр не запрашивает каждое поле. В нем в качестве типа хранилища используется nchar, без префиксов, \t (символ табуляции) в качестве разделителя полей и \n (символ новой строки) в качестве конца строки.
-w несовместим с -c.
Дополнительные сведения см. в разделе "Использование формата символов Юникода" для импорта или экспорта данных (SQL Server).
-z
Применяется только к: bcp (ODBC), Linux и macOS. Windows не поддерживается.
Включает поддержку типа векторных данных в служебной программе bcp . Эта функция в настоящее время отключена по умолчанию. При отключении векторные данные импортируются или экспортируются в виде строк массива с плавающей запятой JSON. При включении и при подключении к SQL Server 2025 (17.x) и более поздним версиям векторные данные импортируются или экспортируются в собственном векторном двоичном формате.
Форматирование файлов
-f format_file
Указывает полный путь к файлу форматирования. Значение этого параметра зависит от среды, в которой она используется, как показано ниже.
При использовании
-fс параметромformatдля указанной таблицы или представления создается указанный format_file . Чтобы создать XML-файл форматирования, также укажите-xпараметр. Дополнительные сведения см. в статье "Создание файла форматирования с помощью bcp (SQL Server)".При использовании
-fс параметромinилиoutтребуется существующий файл формата.Note
Использование файла форматирования с
inпараметром илиoutпараметром является необязательным. Если вы не указываете параметр-fи не указываете-n,-c,-wили-N, команда запрашивает информацию о формате и позволяет сохранить ваши ответы в файле формата. Имяbcp.fmtфайла по умолчанию .
Если format_file начинается с дефиса (-) или косой черты (/), не включайте пробел между -f format_file значением.
-x
Применяется только к Windows. Не поддерживается в Linux и macOS.
Используйте этот параметр с параметрами format-f. Он создает файл в формате XML вместо файла в формате по умолчанию, который не является XML. Этот -x параметр не работает при импорте или экспорте данных. Он создает ошибку, если используется без обоих format и -fformat_file.
Пакетная обработка и производительность
-a packet_size
Указывает количество байтов на сетевой пакет, который клиент отправляет и получает от сервера. Задайте этот параметр конфигурации сервера с помощью SQL Server Management Studio или системной sp_configure хранимой процедуры. Однако можно переопределить параметр конфигурации сервера отдельно с помощью этого параметра.
packet_size может быть от 4096 байт до 65 535 байт. Значение по умолчанию — 4096.
Увеличение размера пакета может повысить производительность операций массового копирования. Если вы запрашиваете больший пакет, но сервер не может предоставить его, используется значение по умолчанию. Статистика производительности, которая генерирует служебная программа bcp , отображает используемый размер пакета.
-b batch_size
Указывает количество строк в каждом пакете импортированных данных. Каждый пакет импортируется и регистрируется как отдельная транзакция, которая импортирует весь пакет, прежде чем быть зафиксированной. По умолчанию bcp импортирует все строки в файле данных в виде одного пакета. Чтобы распределить строки между несколькими пакетами, укажите значение batch_size меньшее, чем количество строк в файле данных. Если транзакция пакета завершится неудачно, то будет выполнен откат только операций вставки в текущем пакете. Пакеты, уже импортированные зафиксированными транзакциями, не влияют на последующий сбой.
-b и -h "ROWS_PER_BATCH=<bb>" подсказка являются взаимоисключающими. Используйте -b , если требуется, чтобы bcp контролировал пакетную обработку явным образом или использовался ROWS_PER_BATCH для указания оптимизатора сервера при отправке данных в виде одной транзакции.
-h "подсказка [, ... n]"
Применяется только к Windows. Не поддерживается в Linux и macOS.
Указывает указание или подсказки для использования во время массового импорта данных в таблицу или представление.
ORDER (столбец [ASC | DESC] [, ...n])
Порядок сортировки данных в файле данных. Производительность массового импорта улучшается, если импортируемые данные сортируются в соответствии с кластеризованным индексом в таблице, если таковые есть. Если файл данных отсортирован в другом порядке, то есть, отличный от порядка кластеризованного ключа индекса, или если в таблице нет кластеризованного индекса, предложение
ORDERигнорируется. Имена столбцов, которые вы указали, должны быть допустимыми именами столбцов в целевой таблице. По умолчанию программа bcp предполагает, что файл данных не упорядочен. Для оптимизированного массового импорта SQL Server также проверяет, отсортированы ли импортированные данные.ROWS_PER_BATCH = bb
Количество строк данных в каждом пакете (bb). Используется, если не указать
-b, в результате чего весь файл данных отправляется серверу в виде одной транзакции. Сервер оптимизирует массовую загрузку в соответствии со значением bb. По умолчаниюROWS_PER_BATCHнеизвестно.KILOBYTES_PER_BATCH = cc
Приблизительный объем данных в каждом пакете в килобайтах (значение cc). По умолчанию
KILOBYTES_PER_BATCHнеизвестно.TABLOCK
Указывает, что блокировка на уровне таблицы массового обновления устанавливается во время операции массовой загрузки; в противном случае блокировка на уровне строк устанавливается. Это указание значительно повышает производительность, так как удержание блокировки во время выполнения операции массового копирования уменьшает конкуренцию за блокировки на таблице. Вы можете загрузить таблицу одновременно из нескольких клиентов, если таблица не имеет индексов и
TABLOCKне указана. По умолчанию параметрtable lock on bulkloadтаблицы определяет поведение блокировки. Подробную информацию см. в разделе sp_tableoption.Note
Если целевая таблица имеет кластерную columnstore-индексацию, указание
TABLOCKне требуется для загрузки несколькими параллельными клиентами, так как каждому параллельному потоку назначается отдельная группа строк в индексе и загружает данные в неё. Дополнительные сведения см. в разделе "Индексы Columnstore: обзор".CHECK_CONSTRAINTS
Указывает, что при выполнении операции массового импорта будет выполняться проверка всех ограничений целевой таблицы или представления. Без подсказки
CHECK_CONSTRAINTSлюбые ограниченияCHECKиFOREIGN KEYигнорируются, и после операции ограничение на таблице помечается как недоверенное.Note
UNIQUE,PRIMARY KEYиNOT NULLограничения всегда применяются.В какой-то момент необходимо проверить ограничения для всей таблицы. Если таблица не была пустой до операции массового импорта, стоимость повторной проверки ограничения может превысить стоимость применения ограничений
CHECKк инкрементным данным. Поэтому обычно можно включить проверку ограничений во время добавочного массового импорта.Отключение проверки ограничений (настройка по умолчанию) может потребоваться в тех ситуациях, когда входные данные содержат строки, нарушающие эти ограничения. Отключив
CHECKограничения, можно импортировать данные, а затем использовать инструкции Transact-SQL для удаления недопустимых данных.Note
Параметр
-mmax_errors не применяется к проверке ограничений.FIRE_TRIGGERS
При указании этого параметра с в аргументе, все триггеры вставки, определенные в целевой таблице, запускаются во время операции массового копирования. Если не указать
FIRE_TRIGGERS, триггеры вставки не выполняются.FIRE_TRIGGERSигнорируется для аргументовout,queryoutиformat.
-m максимальное_число_ошибок
Указывает максимальное количество синтаксических ошибок, которые могут произойти до отмены операции bcp . Синтаксическая ошибка подразумевает ошибку преобразования данных в целевой тип данных. Общий max_errors исключает все ошибки, которые сервер может обнаруживать только, например нарушения ограничений.
Строка, которую программа bcp не может скопировать, игнорируется и считается одной ошибкой. Если этот параметр не включен, значение по умолчанию равно 10.
Note
Параметр -m не применяется при преобразовании типов данных money или bigint .
-F первая_строка
Указывает номер первой строки для экспорта из таблицы или импорта из файла данных. Для этого параметра требуется значение больше (>) 0, но меньше (<) или равно общему количеству строк. Если этот параметр не указан, по умолчанию используется первая строка файла.
Параметрfirst_row может иметь положительное целое значение до 2^63-1.
-F
first_row использует нумерирование на основе 1.
-L последняя_строка
Указывает номер последней строки для экспорта из таблицы или импорта из файла данных. Для этого параметра требуется значение больше (>) 0, но меньше (<) или равно числу последней строки. Если этот параметр не указан, по умолчанию используется последняя строка файла.
Параметрlast_row может иметь положительное целое значение до 2^63-1.
-r row_term
Указывает разделитель строки. Значение по умолчанию — \n (символ перехода на новую строку). Используйте этот параметр, чтобы переопределить разделитель строк по умолчанию. Дополнительные сведения см. в разделе "Указание терминаторов полей и строк" (SQL Server).
Если указать в команде bcp терминатор строки в шестнадцатеричной нотации, значение будет усечено на 0x00. Например, если указать 0x410041, 0x41 используется.
Если row_term начинается с дефиса (-) или косой черты (/), не включайте пробел между -r и значением row_term.
-t field_term
Указывает разделитель поля. Значение по умолчанию — \t (символ табуляции). Используйте этот параметр, чтобы переопределить разделитель полей по умолчанию. Дополнительные сведения см. в разделе "Указание терминаторов полей и строк" (SQL Server).
Если указать терминатор поля в шестнадцатеричном формате в команде bcp, значение усечено на 0x00. Например, если указать 0x410041, 0x41 используется.
Если field_term начинается с дефиса (-) или косой черты (/), не включайте пробел между -t и значением field_term.
Обработка значений
-k
Указывает, что пустые столбцы сохраняют значение NULL во время операции, а не вставлять значения по умолчанию для столбцов. Дополнительные сведения см. в разделе "Сохранение значений NULL" или значений по умолчанию во время массового импорта (SQL Server).
-E
Указывает, что операция использует значения идентификатора в импортируемом файле данных для столбца идентификатора. Если не указано -E, SQL Server игнорирует значения идентификаторов этого столбца в импортируемом файле данных и автоматически назначает уникальные значения на основе начального значения и шага, указанных во время создания таблицы. Дополнительные сведения см. в статье DBCC CHECKIDENT.
Если файл данных не содержит значения столбца удостоверений в таблице или представлении, используйте файл форматирования, чтобы указать, что столбец удостоверений в таблице или представлении должен пропускаться при импорте данных. SQL Server автоматически назначает уникальные значения столбца.
Параметр -E имеет особые требования к разрешениям. Дополнительные сведения см. в разделе "Примечания" далее в этой статье.
Операции ввода-вывода и ведение журнала файлов
-i input_file
Применяется только к Windows. Не поддерживается в Linux и macOS.
Указывает имя файла ответа. Файл содержит ответы на вопросы командной строки для каждого поля данных при выполнении операции массового копирования с помощью интерактивного режима (-n, -c-wили -N не указано).
Если input_file начинается с дефиса (-) или косой черты (/), не включайте пробел между -i и значением input_file.
-o файл_вывода
Применяется только к Windows. Не поддерживается в Linux и macOS.
Указывает имя файла, который принимает перенаправленные из командной строки выходные данные.
Если output_file начинается с дефиса (-) или косой черты (/), не включайте пробел между -o и значением output_file.
-e err_file
Указывает полный путь к файлу ошибки, используемому для хранения строк, которые программа bcp не может передать из файла в базу данных. Сообщения об ошибках команды bcp поступают на рабочую станцию пользователя. Если этот параметр не используется, файл ошибок не создается.
Если err_file начинается с дефиса (-) или косой черты (/), не включайте пробел между -e и значением err_file.
Совместимость и управление версиями
-V { 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 }
Применяется только к Windows. Не поддерживается в Linux и macOS.
Выполняет операцию массового копирования с помощью типов данных из более ранней версии SQL Server. Этот параметр не запрашивает каждое поле; он использует значения по умолчанию.
-
80= SQL Server 2000 (8.x) -
90= SQL Server 2005 (9.x) -
100= SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x) -
110= SQL Server 2012 (11.x) -
120= SQL Server 2014 (12.x) -
130= SQL Server 2016 (13.x) -
140= SQL Server 2017 (14.x) -
150= SQL Server 2019 (15.x) -
160= SQL Server 2022 (16.x) -
170= SQL Server 2025 (17.x)
Например, чтобы создать данные для типов, которые SQL Server 2000 (8.x) не поддерживает, но которые были добавлены в более поздних версиях, используйте -V80.
Дополнительные сведения см. в разделе "Импорт данных собственного и символьного формата" из предыдущих версий SQL Server.
Прочие параметры
-R
Указывает, что программа bcp массово копирует данные валюты, даты и времени в SQL Server с помощью регионального формата, определенного для параметра языкового стандарта клиентского компьютера. По умолчанию bcp игнорирует региональные параметры.
-v
Выводит номер версии и сведения об авторских правах для служебной программы bcp .
Замечания
Программа bcp поддерживает собственные файлы данных, совместимые со всеми поддерживаемыми версиями SQL Server.
Программа bcp отображает только первые 512 байт сообщения об ошибке.
Permissions
Для операции bcp out требуется разрешение SELECT на исходной таблице.
Для bcp in операции минимально требуются разрешения SELECT и INSERT на целевой таблице. Кроме того, ALTER TABLE разрешение требуется, если одно из следующих условий является истинным:
Существуют ограничения, а подсказка
CHECK_CONSTRAINTSне указана.Ограничения отключены по умолчанию. Чтобы явно включить ограничения, используйте опцию
-hс подсказкойCHECK_CONSTRAINTS.Триггеры существуют, и подсказка
FIRE_TRIGGERSне указана.Триггеры не срабатывают по умолчанию. Для явного срабатывания триггеров используйте опцию
-hс подсказкойFIRE_TRIGGERS.Вы используете
-Eопцию для импорта значений идентификаторов из файла данных.
Связанный контент
- Подготовка данных для массового экспорта или импорта
- BULK INSERT (Transact-SQL)
- OPENROWSET (Transact-SQL)
- SET QUOTED_IDENTIFIER (Transact-SQL)
- sp_configure (Transact-SQL)
- sp_tableoption (Transact-SQL)
- Форматирование файлов для импорта или экспорта данных (SQL Server)
Получите помощь
- Идеи для SQL: у вас есть предложения по улучшению SQL Server?
- Вопросы и ответы по продуктам Майкрософт (SQL Server)
- DBA Stack Exchange (тег sql-server): вопросы о SQL Server
- Stack Overflow (тег sql-server): ответы на вопросы о разработке SQL
- Условия и информация о лицензии Microsoft SQL Server
- Варианты поддержки для бизнес-пользователей
- Дополнительная помощь и отзывы о SQL Server
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? При этом вы не только помогаете улучшить нашу документацию, но и получаете признание в качестве участника страницы.
Дополнительные сведения см. в разделе Редактирование документации Microsoft Learn.