Соединение с помощью bcp

Скачать драйвер ODBC

Служебная программа bcp доступна с драйвером Microsoft ODBC для SQL Server на Linux и macOS. На этой странице описаны отличия от версии bcp для Windows.

  • Признаком конца поля является символ табуляции ("\t").

  • Признаком конца строки является символ новой строки ("\n").

  • Текстовый режим является предпочтительным форматом для файлов данных и файлов форматирования bcp, расширенный набор символов.

Примечание.

Обратная косая черта "\" в аргументе командной строки должна быть процитирована или экранирована. Например, чтобы указать символ новой строки в качестве пользовательского признака конца строки, необходимо использовать один из следующих способов:

  • -r\\n
  • -r"\n"
  • -r'\n'

Ниже приведен пример вызова команды bcp для копирования строк таблицы в текстовый файл:

bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx

Доступные варианты

В текущем выпуске доступны следующие параметры и элементы синтаксиса:

[база_данных.]схема.таблицаinфайл_данных | outфайл_данных

-apacket_size
Указывает число байтов в каждом сетевом пакете, отправляемом от сервера и к серверу.

-bbatch_size
Указывает количество строк в каждом пакете импортированных данных.

-c
Использует символьный тип данных.

-ddatabase_name
Указывает базу данных, с которой надо соединиться.

-D
Значение, передаваемое в параметр bcp -S, интерпретируется как имя источника данных (DSN). Дополнительные сведения см. в разделе "Поддержка имени DSN в sqlcmd и bcp" статьи Соединение с помощью sqlcmd.

-eerror_file
Указывает полный путь к файлу ошибок, используемому для хранения строк, которые служебная программа bcp не может передать из файла в базу данных.

-E
Использует значение или значения идентификаторов в файле импортированных данных для столбца идентификаторов.

-fformat_file
Указывает полный путь к файлу форматирования.

-Ffirst_row
Указывает номер первой строки для экспорта из таблицы или импорта из файла данных.

-G
Этот параметр используется клиентом при подключении к База данных SQL Azure, Управляемый экземпляр SQL Azure или Azure Synapse Analytics, чтобы указать, что пользователь проходит проверку подлинности с помощью идентификатора Microsoft Entra (ранее — Azure Active Directory). Его можно объединить с параметром -P, чтобы использовать проверку подлинности токена доступа (версия 17.8+). Для использования параметра -G требуется bcp версии не ниже 17.6. Чтобы определить версию, выполните команду bcp -v.

Важно!

Этот -G параметр применяется только к База данных SQL Azure, Управляемый экземпляр SQL Azure и Azure Synapse Analytics.

Интерактивная проверка подлинности Microsoft Entra в настоящее время не поддерживается в Linux или macOS. Для интегрированной проверки подлинности Microsoft Entra требуется Microsoft ODBC Driver 17 для SQL Server версии 17.6.1 или более поздней и правильно настроенная среда Kerberos.

-k
Указывает, что пустые столбцы во время операции должны хранить значение NULL вместо любых вставляемых значений по умолчанию для столбцов.

-L
Указывает время ожидания входа. Параметр -l задает время ожидания (в секундах) для входа в SQL Server при попытке подключения к серверу. Значение времени ожидания по умолчанию — 15 секунд. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534. Если указанное значение не является числом или выходит за пределы указанного диапазона, программа bcp выдает сообщение об ошибке. Значение 0 указывает на бесконечное время ожидания.

-Llast_row
Указывает номер последней строки для экспорта из таблицы или импорта из файла данных.

-mmax_errors
Указывает максимальное количество синтаксических ошибок, которые могут произойти до отмены операции программы bcp.

-n
Использует собственные типы данных (базы данных) для выполнения операции массового копирования.

-Ppassword
Указывает пароль для идентификатора имени входа. При использовании с параметром -G без параметра -U указывает файл, содержащий токен доступа (версия 17.8+). Файл токена должен быть в формате UTF-16LE (без метки порядка байтов).

Маркеры доступа можно получить с помощью различных методов. Важно убедиться, что маркер доступа имеет побайтовое соответствие, так как он будет отправлен как есть. Ниже приведен пример команды, которая позволяет получить маркер доступа. Команда использует команды Azure CLI и Linux и сохраняет их в файл в правильном формате. Если используемая по умолчанию схема кодирования системы или терминала — не ASCII или UTF-8, возможно, вам потребуется изменить параметры iconv. Защитите результирующий файл и удалите его, если он больше не нужен.

az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile

-q
Выполняет инструкцию SET QUOTED_IDENTIFIERS ON в соединении между bcp служебной программой и экземпляром SQL Server.

-rrow_terminator
Указывает признак конца строки.

-R
Указывает, что данные валюты, даты и времени массово копируются в SQL Server с помощью регионального формата, определенного для параметра языкового стандарта клиентского компьютера.

-Sserver
Указывает имя экземпляра SQL Server для подключения или, если используется -D, dsN.

-tfield_terminator
Указывает признак конца поля.

-T
Указывает, что служебная bcp программа подключается к SQL Server с доверенным подключением (встроенная безопасность).

-u
Разрешает доверять сертификату сервера. (Доступно начиная с версии bcp 18)

-Ulogin_id
Указывает идентификатор входа, используемый для подключения к SQL Server.

-v
Выводит номер версии и сведения об авторских правах для программы bcp.

-w
Использует символы Юникода для выполнения операции массового копирования.

В этом выпуске поддерживаются символы Latin-1 и UTF-16.

-Y[s|m|o]
Задает режим шифрования подключения. Допустимые варианты: Strict, Mandatory и Optional. При использовании -Y без параметров применяется режим шифрования Mandatory, что эквивалентно -Ym. (Доступно начиная с версии bcp 18)

Недоступные параметры

В текущем выпуске следующие параметры и элементы синтаксиса недоступны:

-C
Указывает кодовую страницу данных в файле данных.

-hhint
Указывает одну или несколько подсказок, используемых во время выполнения массового импорта данных в таблицу или представление.

-iinput_file
Указывает имя файла ответов.

-N
Использует собственные типы данных (базы данных) для несимвольных данных и символы Юникода для символьных данных.

-ooutput_file
Указывает имя файла, который принимает перенаправленные из командной строки выходные данные.

-V (80 | 90 | 100)
Использует типы данных из более ранней версии SQL Server.

-x
При использовании вместе с параметрами format и -f файл_формата приводит к созданию файла форматирования на основе XML. По умолчанию создается файл форматирования в формате, отличном от XML.

См. также

Подключение с помощью sqlcmd
Заметки о выпуске