bcp, программа
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL Azure Synapse Analytics Analytics Platform System (PDW) в Microsoft Fabric
Программа массового копирования (bcp) копирует данные между экземпляром Microsoft SQL Server и файлом данных в указанном пользователем формате.
Сведения об использовании bcp в Linux см. в разделе "Установка средств командной строки SQL Server sqlcmd и bcp в Linux". Подробные сведения об использовании bcp с Azure Synapse Analytics см. в статье "Загрузка данных с помощью bcp".
Служебная программа bcp может использоваться для импорта большого количества новых строк в таблицы SQL Server или экспорта данных из таблиц в файлы данных. За исключением случаев использования с параметром queryout
, программа не требует знаний о Transact-SQL. Чтобы выполнить импорт данных в таблицу, необходимо или использовать файл форматирования, созданный для этой таблицы, либо изучить структуру таблицы и типов данных, допустимых для ее столбцов.
Примечание.
При использовании программы bcp для резервного копирования данных создайте файл форматирования для записи формата данных. Файлы данных bcp не содержат никаких сведений о схеме или формате, поэтому если таблица или представление удалены и у вас нет файла форматирования, возможно, не удается импортировать данные.
Соглашения о синтаксисе, используемые для синтаксиса BCP , см . в соглашениях о синтаксисе Transact-SQL.
Скачайте последнюю версию программы bcp
Средства командной строки являются общедоступной версией, однако они выпускаются с пакетом установщика для SQL Server 2019 (15.x) и более поздних версий.
Windows
- Скачивание драйвера ODBC Driver for SQL Server
- Скачать программы командной строки Microsoft 15 для SQL Server (х64)
- Скачать программы командной строки Microsoft 15 для SQL Server (х86)
Linux и macOS
Инструкции по установке sqlcmd и bcp в Linux см. в статье "Установка средств командной строки SQL Server" и "BCP" в Linux и macOS.
Сведения о версии
- Номер выпуска: 15.0.4298.1
- Номер сборки: 15.0.4298.1
- Дата выпуска: 7 апреля 2023 г.
bcp поддерживает проверку подлинности Microsoft Entra, включая многофакторную проверку подлинности (MFA) для Azure Databas, базы данных SQL в Microsoft Fabric и Azure Synapse Analytics.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Требования к системе
Windows 8, Windows 8.1, Windows 10, Windows 11
Windows Server 2016, Windows Server 2019, Windows Server 2022
Для этого компонента требуется последний драйвер Microsoft ODBC 17 для SQL Server.
Чтобы проверить версию bcp , выполните bcp -v
команду и убедитесь, что используется версия 15.0.4298.1 или более поздней версии.
Примечание.
sqlcmd и bcp также доступны в Linux. Дополнительные сведения см. в статье "Установка средств командной строки SQL Server sqlcmd и bcp в Linux".
Синтаксис
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 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 | 140 | 150 | 160 ) ]
[-w]
[-x]
Параметры командной строки
database_name
Имя базы данных, в которой находится указанная таблица или представление. Эта база данных будет по умолчанию использоваться для пользователя, если не указано иное.
Можно также явным образом указать имя базы данных с помощью параметра -d
.
schema
Имя владельца таблицы или представления. schema указывать не обязательно, если пользователь, выполняющий операцию, является владельцем указанной таблицы или представления. Если схема не указана, и пользователь, выполняющий операцию, не владеет указанной таблицей или представлением, SQL Server возвращает сообщение об ошибке, а операция отменяется.
table_name
Имя целевой таблицы при импорте данных в SQL Server (in
) и исходную таблицу при экспорте данных из SQL Server (out
).
view_name
Имя целевого представления при копировании данных в SQL Server (in
) и исходное представление при копировании данных из SQL Server (out
). В качестве целевых представлений могут выступать только те представления, в которых все столбцы ссылаются на одну таблицу. Дополнительные сведения об ограничениях для копирования данных в представления см. в разделе INSERT.
"query"
Запрос Transact-SQL, возвращающий результирующий набор. Если запрос возвращает несколько результирующих наборов, то в файл данных будет скопирован только первый результирующий набор. Последующие результирующие наборы не учитываются. Используйте двойные кавычки для запроса и одинарные кавычки для выражений, внедренных в запрос. queryout
также необходимо указать при массовом копировании данных из запроса.
Запрос может ссылаться на хранимую процедуру до тех пор, пока все таблицы, на которые ссылается хранимая процедура, существуют перед выполнением инструкции bcp . Например, если хранимая процедура порождает временную таблицу, инструкция bcp завершается с ошибкой, поскольку временная таблица доступна только во время выполнения, а не во время запуска инструкции. В этом случае можно вставить результаты работы хранимой процедуры в таблицу, после чего использовать bcp для копирования данных из этой таблицы в файл данных.
in
Копирует из файла в таблицу базы данных или представление. Указывает направление массового копирования.
out
Копируется из таблицы базы данных или представления в файл. Указывает направление массового копирования.
Если указать существующий файл, то файл перезаписывается. При извлечении данных программа bcp представляет пустую строку как строку NULL, а строку NULL — как пустую строку.
data_file
Полный путь к файлу данных. При массовом импорте данных в SQL Server файл данных содержит данные, которые нужно скопировать в указанную таблицу или представление. При массовом экспорте данных из SQL Server файл данных содержит данные, скопированные из таблицы или представления. Путь может содержать от 1 до 255 символов. Файл данных может содержать максимум 2^63 – 1 строк.
запрос
Копируется из запроса и должен быть указан только при массовом копировании данных из запроса.
format
Создает файл формата на основе указанных параметров (-n
, -c
-w
или-N
) и разделителей таблиц или представлений. При выполнении массового копирования данных программа bcp может обратиться к файлу форматирования, что позволяет избежать повторного ввода данных о формате в интерактивном режиме. Для этого параметра требуется -f
параметр. Для format
создания XML-файла форматирования также требуется -x
параметр. Дополнительные сведения см. в статье Создание файла форматирования (SQL Server). Необходимо указать nul
в качестве значения (format nul
).
-a размер_пакета
Указывает число байтов в каждом сетевом пакете, отправляемом от сервера и к серверу. Параметр конфигурации сервера можно задать с помощью SQL Server Management Studio (или системной sp_configure
хранимой процедуры). Однако параметр конфигурации сервера в отдельных случаях можно изменить с помощью этого параметра. packet_size может быть от 4096 байт до 65 535 байт; значение по умолчанию 4096
.
Увеличение размера пакета может повысить производительность операций массового копирования. Если запрашивается более крупный пакет, но не может быть предоставлен, используется значение по умолчанию. Статистика производительности, формируемая программой bcp , показывает используемый размер пакета.
-b batch_size
Указывает количество строк в каждом пакете импортированных данных. Каждый пакет импортируется и регистрируется как отдельная транзакция, которая фиксируется после выполнения импорта всего пакета. По умолчанию импорт всех строк в файле данных выполняется в одном пакете. Чтобы распределить строки между несколькими пакетами, укажите значение batch_size меньшее, чем количество строк в файле данных. Если транзакция пакета завершится неудачно, то будет выполнен откат только операций вставки в текущем пакете. Произошедшая ошибка не затрагивает пакеты, импорт которых уже выполнен зафиксированными транзакциями.
Не используйте этот параметр с параметром -h "ROWS_PER_BATCH=<bb>"
.
-c
Выполняет операцию, используя символьный тип данных. Этот параметр не запрашивает каждое поле; он использует char в качестве типа хранилища без префиксов и с \t
(символом табуляции) в качестве разделителя полей и \r\n
(новый символ) в качестве конца строки. -c
несовместим с -w
.
Дополнительные сведения см. в разделе "Использование формата символов для импорта или экспорта данных (SQL Server)".
-C { ACP | OEM | RAW | code_page }
Указывает кодовую страницу данных в файле данных. Аргументcode_page имеет смысл только в том случае, если данные содержат столбцы типа char, varcharили text с символами, коды которых больше 127 или меньше 32.
Примечание.
Рекомендуется указывать имя параметра сортировки для каждого столбца в файле форматирования, кроме случаев, когда параметр 65001 должен иметь приоритет над спецификацией параметров сортировки или кодовой страницы.
Значение кодовой страницы | Description |
---|---|
ACP | ANSI/Microsoft Windows (ISO 1252). |
OEM | Кодовая страница, используемая клиентом по умолчанию. Это кодовая страница по умолчанию, используемая, если -C она не указана. |
НЕОБРАБОТАННЫЕ | Преобразование из одной кодовой страницы в другую не выполняется. Этот параметр обеспечивает высокую производительность, так как преобразование не выполняется. |
code_page | Определенный номер кодовой страницы, например 850. Версии до версии 13 (SQL Server 2016 (13.x)) не поддерживают кодовую страницу 65001 (кодировка UTF-8). Версии, начиная с 13, могут импортировать кодировку UTF-8 в более ранние версии SQL Server. |
-d имя_базы_данных
Указывает базу данных, с которой надо соединиться. По умолчанию bcp подключается к базе данных пользователя по умолчанию. Если -d <database_name>
указано и три имени части (database_name.schema.table, переданные в качестве первого параметра bcp), возникает ошибка, так как имя базы данных невозможно указать дважды. Если database_name начинается с дефиса (-
) или косой черты (/
), не добавляйте пробел между -d
именем базы данных.
-D
Приводит к bcp -S
тому, что значение, переданное параметру, интерпретируется как имя источника данных (DSN). DSN можно использовать для внедрения параметров драйвера для упрощения командной строки, принудительного применения параметров драйвера, которые не доступны в командной строке, например MultiSubnetFailover, или для защиты конфиденциальных учетных данных от обнаружения в качестве аргументов командной строки. Дополнительные сведения см. в разделе Поддержка имени DSN в sqlcmd и bcp статьи Соединение с помощью sqlcmd.
-e err_file
Указывает полный путь к файлу ошибки, используемому для хранения строк, которые программа bcp не может передать из файла в базу данных. Сообщения об ошибках команды bcp поступают на рабочую станцию пользователя. Если этот параметр не используется, файл ошибки не создается.
Если err_file начинается с дефиса (-
) или косой черты (/
), не включайте пробел между -e
err_file значением.
E-
Указывает, что значение или значения идентификаторов в файле импортированных данных будут использоваться для столбца идентификаторов. Если -E
это не задано, значения удостоверений этого столбца в импортируемом файле данных игнорируются, а SQL Server автоматически назначает уникальные значения на основе значений начального и добавочного значения, указанных во время создания таблицы. Дополнительные сведения см. в статье DBCC CHECKIDENT.
Если файл данных не содержит значения для столбца удостоверений в таблице или представлении, используйте файл форматирования, чтобы указать, что столбец удостоверений в таблице или представлении должен пропускаться при импорте данных; SQL Server автоматически назначает уникальные значения столбца.
Параметр -E
имеет особые требования к разрешениям. Дополнительные сведения см. в разделе "Примечания" далее в этой статье.
-f format_file
Указывает полный путь к файлу форматирования. Значение этого параметра зависит от среды, в которой она используется, как показано ниже.
Если
-f
используется с параметромformat
, для указанной таблицы или представления создается указанный format_file . Чтобы создать XML-файл форматирования, также укажите-x
параметр. Дополнительные сведения см. в статье Создание файла форматирования (SQL Server).Если используется с параметром или
out
параметромin
,-f
требуется существующий файл формата.Примечание.
Использование файла форматирования с параметром
in
илиout
параметром является необязательным. Если параметр ,-n
-w
-c
или-N
не указан, командная строка для сведений-f
о формате и позволяет сохранять ответы в файле форматирования (имяbcp.fmt
файла по умолчанию).
Если format_file начинается с дефиса (-
) или косой черты (/
), не включайте пробел между -f
format_file значением.
-F first_row
Указывает номер первой строки для экспорта из таблицы или импорта из файла данных. Для этого параметра требуется значение больше (>
) 0, но меньше (<
) или равно (=
) общему числу строк. Если параметр отсутствует, по умолчанию используется первая строка файла.
Параметрfirst_row может иметь положительное целое значение до 2^63-1. -F
first_row основан на 1.
-G
Применимо только к: База данных SQL Azure, базе данных SQL в Microsoft Fabric и Azure Synapse Analytics.
Этот параметр используется клиентом, чтобы указать, что пользователь прошел проверку подлинности с помощью идентификатора Microsoft Entra. Для коммутатора -G требуется версия 14.0.3008.27 или более поздней версии. Чтобы определить версию, выполните bcp -v
. Дополнительные сведения см. в статье Об использовании проверки подлинности Microsoft Entra с База данных SQL или Azure Synapse Analytics или аутентификацией в базе данных SQL в Fabric.
Внимание
Интерактивная проверка подлинности Microsoft Entra в настоящее время не поддерживается в Linux или macOS. Для интегрированной проверки подлинности Microsoft Entra требуется Microsoft ODBC Driver 17 для SQL Server версии 17.6.1 и более поздних версий, а также правильно настроенная среда Kerberos.
Совет
Чтобы проверить, включена ли ваша версия bcp в службу поддержки проверки подлинности Microsoft Entra, введите bcp --help
и убедитесь, что вы видите -G
в списке доступных аргументов.
Имя пользователя и пароль Microsoft Entra
Если вы хотите использовать имя пользователя и пароль Microsoft Entra, вы можете указать
-G
этот параметр, а также использовать имя пользователя и пароль, указав-U
-P
и параметры.В следующем примере данные экспортируются с помощью имени пользователя и пароля Microsoft Entra. Здесь показана процедура экспорта таблицы
bcptest
из базы данныхtestdb
на сервере Azureaadserver.database.windows.net
и сохранения данных в файлеc:\last\data1.dat
:bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
В следующем примере данные импортируются с помощью учетных данных пользователя Microsoft Entra. Пример импортирует данные из файла
c:\last\data1.dat
в таблицуbcptest
для базы данныхtestdb
на сервереaadserver.database.windows.net
Azure с помощью имени пользователя и пароля Microsoft Entra:bcp bcptest in "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
Интегрированная microsoft Entra
Для встроенной проверки подлинности Microsoft Entra укажите
-G
параметр без имени пользователя или пароля. Для этой конфигурации требуется, чтобы текущая учетная запись пользователя Windows (учетная запись , в которой выполняется команда bcp ), федеративна с идентификатором Microsoft Entra:В следующем примере данные экспортируются с помощью встроенной проверки подлинности Microsoft Entra. Пример экспортирует таблицу
bcptest
из базы данныхtestdb
на логическом сервереaadserver.database.windows.net
и сохраняет данные в файлеc:\last\data2.dat
, используя учетные данные Windows, федеративные с идентификатором Microsoft Entra:bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c
В следующем примере импортируются данные с помощью встроенной проверки подлинности Microsoft Entra. Пример импортирует данные из таблицы
c:\last\data2.dat
файлов в таблицуbcptest
в базу данныхtestdb
на логическом сервереaadserver.database.windows.net
с помощью учетных данных Windows, федеративных с идентификатором Microsoft Entra:bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c
Удостоверение управляемой службы Microsoft Entra
Внимание
bcp тесно связан с драйвером. Основные версии bcp и драйвера, с которыми создается DSN, должны быть одинаковыми. Чтобы определить версию, выполните
bcp -v
.Для экспорта данных через bcp с помощью управляемого удостоверения службы в Windows требуется настроить dsN.
Чтобы настроить DSN на компьютере под управлением Windows, выполните действия.
- Нажмите клавишу Windows на клавиатуре
- Введите
ODBC
и выберите соответствующую версию администратора источника данных ODBC - Выберите вкладку "Доменная запись пользователя" или "Системная dsN"
- Нажмите кнопку "Добавить " и следуйте инструкциям
- При запросе типа проверки подлинности выберите проверку подлинности управляемого удостоверения службы Azure
- Если у вас есть управляемое удостоверение, назначаемое пользователем, вставьте
Object (principal) ID
удостоверение в поле идентификатора входа в нижней части вкладки проверки подлинности. - Продолжайте следовать инструкциям по настройке dsN
Полное пошаговое руководство, включая снимки экрана, см. в разделе "Создание и редактирование доменных сетей" в пользовательском интерфейсе.
После настройки dsN можно вызвать bcp с помощью
-D
флага, чтобы указать, что значение, переданное для-S
этого, является DSN.bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
Маркер доступа идентификатора Microsoft Entra
Пользователи bcp (17.8 и более поздних версий) также могут проходить проверку подлинности с помощью маркера. В следующих примерах используется PowerShell в Linux для получения маркера доступа.
В этом примере извлекается маркер доступа и помещается в файл для экспорта данных с помощью управляемого удостоверения, назначаемого системой.
Connect-AzAccount -Identity $access_token | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile bcp bcptest out data2.dat -S aadserver.database.windows.net -d testdb -G -P /tmp/tokenFile -c
В этом примере
Client ID
-AccountId
передается параметрConnect-AzAccount
для получения маркера доступа и его размещения в файл маркера. Затем маркер используется для экспорта данных с помощью указанного управляемого удостоверения, назначаемого пользователем.Connect-AzAccount -Identity -AccountId 'client_id_of_user_assigned_managed_identity' $access_token | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile bcp bcptest out data2.dat -S aadserver.database.windows.net -d testdb -G -P /tmp/tokenFile -c
Интерактивный microsoft Entra
Интерактивная проверка подлинности Microsoft Entra, доступная для всех SQL Azure и SQL Server 2022+, позволяет использовать интерактивное диалоговое окно для проверки подлинности, которое также поддерживает многофакторную проверку подлинности.
Для интерактивной проверки подлинности Microsoft Entra требуется bcp версии 15.0.1000.34 или более поздней версии, а также ODBC версии 17.2 или более поздней.
Чтобы включить интерактивную
-G
проверку подлинности, укажите только имя пользователя (-U
) и пароль отсутствует.В следующем примере данные экспортируются с помощью интерактивной проверки подлинности Microsoft Entra, которая включает указание имени пользователя учетной записи Microsoft Entra.
В интерактивном режиме требуется, чтобы пароль был введен вручную или для учетных записей с включенной многофакторной проверкой подлинности, выполните настроенный метод проверки подлинности MFA.
bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com
Если используется пользователь Microsoft Entra, который является учетной записью Windows из федеративного домена, имя пользователя, введенное в командной строке, должно содержать его домен (например,
joe@contoso.com
):bcp bcptest out "c:\last\data1.dat" -c -S aadserver.database.windows.net -d testdb -G -U joe@contoso.com
Если гостевые пользователи существуют в определенном клиенте Microsoft Entra и являются частью группы, которая существует в База данных SQL с разрешениями базы данных для выполнения команды bcp, используется псевдоним гостевого пользователя (например,
keith0@adventure-works.com
).
-h "подсказки [, ... n]"
Указывает одну или несколько подсказок для использования во время выполнения массового импорта данных в таблицу или представление.
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
Указывает, что при выполнении массового обновления на период операции массовой загрузки будет получена блокировка на уровне таблицы. В противном случае запрашивается блокировка на уровне строки. Применение этого указания значительно повышает производительность, так как удержание блокировки в течение операции массового копирования уменьшает вероятность состязаний блокировок в таблице. Таблицу можно загрузить одновременно с нескольких клиентов, если таблица не имеет индексов и ТАБЛОК не указана. По умолчанию работа блокировки определяется параметром таблицы table lock on bulkload.
Примечание.
Если целевая таблица является кластеризованным индексом columnstore, указание TABLOCK не требуется для загрузки несколькими параллельными клиентами, так как каждый параллельный поток назначает отдельную группу строк в индексе и загружает данные в него. Дополнительные сведения см. в концептуальных статьях индекса columnstore.
CHECK_CONSTRAINTS
Указывает, что при выполнении операции массового импорта будет выполняться проверка всех ограничений целевой таблицы или представления. Если указание CHECK_CONSTRAINTS не задано, то все ограничения CHECK и FOREIGN KEY пропускаются, и после выполнения операции ограничение таблицы отмечается как ненадежное.
Примечание.
Ограничения UNIQUE, PRIMARY KEY и NOT NULL проверяются в любом случае.
В какой-то момент необходимо проверить ограничения для всей таблицы. Если таблица не была простой перед операцией массового импорта, стоимость повторного выполнения ограничения может превысить стоимость применения ограничений CHECK к добавочным данным. Поэтому корпорация Майкрософт рекомендует включить проверку ограничений во время выполнения добавочного массового импорта данных.
Отключение проверки ограничений (настройка по умолчанию) может потребоваться в тех ситуациях, когда входные данные содержат строки, нарушающие эти ограничения. С отключенными ограничениями CHECK можно импортировать данные, а затем использовать инструкции Transact-SQL для удаления недопустимых данных.
Примечание.
Bcp теперь применяет проверку данных и проверки данных, которые могут привести к сбою сценариев, если они выполняются на недопустимых данных в файле данных.
Примечание.
Параметр
-m
max_errors не применяется к проверке ограничений.FIRE_TRIGGERS
При указании в аргументе любые триггеры вставки, определенные в целевой таблице, выполняются во время операции массового копирования. Если FIRE_TRIGGERS не указан, триггеры вставки не будут выполняться. FIRE_TRIGGERS игнорируется для
out
аргументов иqueryout
format
аргументов.
-i входной_файл
Указывает имя файла ответа, содержащего ответы на вопросы командной строки для каждого поля данных при выполнении массового копирования с помощью интерактивного режима (-n
, -c
-w
или -N
не указано).
Если input_file начинается с дефиса (-
) или косой черты (/
), не включайте пробел между -i
input_file значением.
-k
Указывает, что пустые столбцы во время данной операции должны сохранить значение NULL вместо любых вставляемых значений столбцов по умолчанию. Дополнительные сведения см. в разделе "Сохранение значений NULL" или значений по умолчанию во время массового импорта (SQL Server).
-K намерение_приложения
Объявляет тип рабочей нагрузки приложения при соединении с сервером. Единственное возможное значение.ReadOnly
Если -K
это не указано, программа bcp не поддерживает подключение к вторичной реплике в группе доступности AlwaysOn. Дополнительные сведения см. в разделе "Разгрузка рабочей нагрузки только для чтения" во вторичную реплику группы доступности AlwaysOn.
-l время_ожидания_входа
Указывает время ожидания входа. Параметр -l
указывает количество секунд до истечения времени ожидания входа в SQL Server при попытке подключения к серверу. Значение времени ожидания по умолчанию — 15 секунд. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534. Если указанное значение не является числовым или не попадает в этот диапазон, bcp создает сообщение об ошибке. Значение 0 указывает на бесконечное время ожидания.
-L last_row
Указывает номер последней строки для экспорта из таблицы или импорта из файла данных. Для этого параметра требуется значение больше (>
) 0, но меньше (<
) или равно (=
) числу последней строки. Если параметр отсутствует, по умолчанию используется последняя строка файла.
Параметрlast_row может иметь положительное целое значение до 2^63-1.
-m max_errors
Указывает максимальное количество синтаксических ошибок, которые могут произойти до отмены операции bcp . Синтаксическая ошибка подразумевает ошибку преобразования данных в целевой тип данных. В общее количество ошибок max_errors не включаются ошибки, которые могут быть обнаружены только на сервере, например нарушения ограничений.
Строка, которая не может быть скопирована служебной программой bcp , игнорируется и считается одной ошибкой. Если этот параметр не включен, значение по умолчанию равно 10.
Примечание.
Этот -m
параметр также не применяется к преобразованию типов данных money или bigint .
-n
Выполняет операцию массового копирования, используя собственные типы данных (базы данных). Этот параметр не запрашивает каждое поле; он использует собственные значения.
Дополнительные сведения см. в статье "Использование собственного формата для импорта или экспорта данных (SQL Server)".
N-
Выполняет операцию массового копирования, используя собственные типы данных (базы данных) для несимвольных данных и символы Юникода для символьных данных. Этот параметр предлагает более высокую производительность -w
, а также предназначен для передачи данных из одного экземпляра SQL Server в другой с помощью файла данных. Он не запрашивает каждое поле. Используйте этот параметр при передаче данных, содержащих расширенные символы ANSI, и вы хотите воспользоваться преимуществами производительности собственного режима.
Дополнительные сведения см. в разделе Использование собственного формата Юникод для импорта и экспорта данных (SQL Server).
При экспорте и импорте данных в ту же схему таблицы с помощью bcp -N
может появиться предупреждение усечения, если имеется фиксированный символьный столбец, отличный от Юникода (например, char(10)).
Это предупреждение можно пропустить. Одним из способов устранения этого предупреждения является использование -n
вместо -N
этого.
-o выходной_файл
Указывает имя файла, который принимает перенаправленные из командной строки выходные данные.
Если output_file начинается с дефиса (-
) или косой черты (/
), не включайте пробел между -o
output_file значением.
-P пароль
Указывает пароль для идентификатора имени входа. Если этот параметр не используется, командная строка bcp для пароля. Если этот параметр используется в конце командной строки без указания пароля, программа bcp применяет пароль по умолчанию (NULL).
Внимание
Не используйте пустые пароли. Выбирайте надежные пароли.
Чтобы маскировать пароль, не указывайте -P
этот параметр вместе с параметром -U
. Вместо этого после указания bcp вместе с параметром -U
и другими переключателями (не указывайте-P
), нажмите клавишу ВВОД, и команда будет запрашивать пароль. Этот метод гарантирует, что пароль маскируется при вводе.
Если пароль начинается с дефиса (-
) или косой черты (/
), не добавляйте пробел между -P
значением пароля .
-q
Выполняет инструкцию SET QUOTED_IDENTIFIER ON в соединении между служебной программой bcp и экземпляром SQL Server. Используйте этот параметр для указания базы данных, владельца, таблицы или имени представления, содержащих пробел или одинарную кавычку. Заключите все имя таблицы или представления, состоящее из трех частей, в кавычки ("").
Чтобы указать имя базы данных, содержащее пробел или одну кавычку, необходимо использовать -q
этот параметр.
-q
не применяется к значениям, передаваемым -d
в .
Дополнительные сведения см . в разделе "Примечания" далее в этой статье.
-r row_term
Указывает признак конца строки. Значением по умолчанию является \n (символ перевода строки). Используйте этот параметр, чтобы переопределить признак конца строки по умолчанию. Дополнительные сведения см. в разделе Определение признаков конца поля и строки (SQL Server).
Если указать терминатор строки в шестнадцатеричной нотации в команде bcp , значение усечено по 0x00
адресу. Например, если указать 0x410041
, 0x41
используется.
Если row_term начинается с дефиса (-
) или косой черты (/
), не включайте пробел между -r
row_term значением.
-R
Указывает, что данные валюты, даты и времени массово копируются в SQL Server с помощью регионального формата, определенного для параметра языкового стандарта клиентского компьютера. По умолчанию региональные настройки не учитываются.
-S server_name [\instance_name]
Указывает экземпляр SQL Server, к которому выполняется подключение. Если сервер не указан, программа bcp подключается к экземпляру SQL Server по умолчанию на локальном компьютере. Этот параметр необходим, если команда bcp выполняется с удаленного компьютера в сети или с локального именованного экземпляра. Чтобы подключиться к экземпляру SQL Server по умолчанию на сервере, укажите только server_name. Чтобы подключиться к именованному экземпляру SQL Server, укажите server_name**\**instance_name.
-t field_term
Указывает признак конца поля. Значением по умолчанию является \t (символ табуляции). Используйте этот параметр, чтобы переопределить признак конца поля по умолчанию. Дополнительные сведения см. в разделе Определение признаков конца поля и строки (SQL Server).
Если указать терминатор поля в шестнадцатеричной нотации в команде bcp , значение усечено по 0x00
адресу. Например, если указать 0x410041
, 0x41
используется.
Если field_term начинается с дефиса (-
) или косой черты (/
), не включайте пробел между -t
field_term значением.
-T
Указывает, что служебная программа bcp подключается к SQL Server с доверенным подключением с помощью интегрированной безопасности. Учетные данные безопасности сетевого пользователя, login_id и пароль не требуются. Если -T
не указано, необходимо указать -U
и -P
успешно подключиться.
Внимание
Если программа bcp подключается к SQL Server с доверенным подключением с помощью встроенной безопасности, используйте -T
параметр (доверенное подключение) вместо сочетания имени пользователя и пароля. Если программа bcp подключается к База данных SQL или Azure Synapse Analytics, использование проверка подлинности Windows или проверки подлинности Microsoft Entra не поддерживается. -U
Используйте параметры и -P
параметры.
-U имя_для_входа
Указывает идентификатор входа, используемый для подключения к SQL Server.
-v
Выводит номер версии и сведения об авторских правах для служебной программы bcp .
-V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160)
Выполняет операцию массового копирования с помощью типов данных из более ранней версии 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)
Например, чтобы создать данные для типов, которые не поддерживаются SQL Server 2000 (8.x), но были введены в более поздних версиях SQL Server, используйте этот -V80
параметр.
Дополнительные сведения см. в разделе "Импорт данных собственного и символьного формата" из предыдущих версий SQL Server.
w-
Выполняет операцию массового копирования, используя символы Юникода. Этот параметр не запрашивает каждое поле; он использует nchar в качестве типа хранилища, без префиксов, \t (символ табуляции) в качестве разделителя полей и \n (символ новой строки) в качестве конца строки. -w
несовместим с -c
.
Дополнительные сведения см. в разделе "Использование формата символов юникода" для импорта или экспорта данных (SQL Server).
-x
Этот параметр используется с format
параметрами и -f
format_file и создает XML-файл форматирования вместо файла форматирования, отличного от XML. Он -x
не работает при импорте или экспорте данных. Он создает ошибку, если используется без format
обоих и -f
format_file.
Замечания
Клиент bcp 13.0 устанавливается при установке средств Microsoft SQL Server 2019 (15.x). Если средства устанавливаются для нескольких версий SQL Server в зависимости от порядка значений переменной среды PATH, возможно, вы используете более ранний клиент bcp вместо клиента bcp 13.0. Переменная среды определяет набор каталогов, используемых Windows для поиска исполняемых файлов. Чтобы узнать, какая версия используется, выполните
bcp -v
команду в командной строке Windows. Чтобы получить информацию о том, как задать путь к команде в переменной среды PATH, обратитесь к разделу Переменные среды или выполните поиск по запросу "Переменные среды" в справке Windows.Чтобы убедиться, что установлена последняя версия служебной программы bcp , необходимо удалить все старые версии программы bcp .
Чтобы определить, где установлены все версии служебной программы bcp , введите в командной строке:
where bcp.exe
Служебная программа bcp также может быть загружена отдельно от пакета дополнительных компонентов Microsoft SQL Server 2016. Выберите
ENU\x64\MsSqlCmdLnUtils.msi
илиENU\x86\MsSqlCmdLnUtils.msi
.XML-файлы форматирования поддерживаются только в том случае, если средства SQL Server устанавливаются вместе с собственным клиентом SQL Server.
Сведения о том, где найти или как запустить служебную программу bcp, а также о соглашениях о синтаксисе служебных программ командной строки командной строки SQL (ядро СУБД).
Сведения о подготовке данных для операций массового импорта или экспорта см. в статье "Подготовка данных для массового экспорта или импорта".
Сведения о том, когда операции вставки строк, выполняемые массовым импортом, регистрируются в журнале транзакций, см. в разделе "Предварительные требования для минимального ведения журнала в массовом импорте".
Использование дополнительных специальных символов
Символы , ,
>
|
&
, и^
являются специальными символами командной оболочки<
, и они должны предшествовать escape-символу (^
), или заключены в кавычки при использовании в строке (например, )."StringContaining&Symbol"
Если строка, содержащая специальный символ, заключена в кавычки, кавычки необходимо указывать как часть значения переменной среды.
Поддержка собственного файла данных
В SQL Server программа bcp поддерживает собственные файлы данных, совместимые с версиями SQL Server, начиная с SQL Server 2000 (8.x) и более поздних версий.
Вычисляемые столбцы и столбцы метки времени
Значения в импортируемом файле данных для вычисляемых или меток времени игнорируются, а SQL Server автоматически назначает значения. Если файл данных не содержит значения для вычисляемых или меток времени в таблице, используйте файл форматирования, чтобы указать, что вычисляемые или метки времени в таблице должны пропускаться при импорте данных; SQL Server автоматически назначает значения столбца.
Вычисляемые и метки времени массово копируются из SQL Server в файл данных как обычно.
Укажите идентификаторы, содержащие пробелы или кавычки
Идентификаторы SQL Server могут включать такие символы, как внедренные пробелы и кавычки. Такие идентификаторы должны обрабатываться следующим образом.
Если идентификатор или имя файла содержит пробел или кавычку в командной строке, заключите идентификатор в двойные кавычки ("").
Например, следующая команда
bcp out
создает файл данных с именемCurrency Types.dat
:bcp AdventureWorks2022.Sales.Currency out "Currency Types.dat" -T -c
Чтобы указать имя базы данных, содержащее пробел или кавычки, необходимо использовать параметр
-q
.Для имен владельца, таблицы или представления, содержащих внедренные пробелы или кавычки, также можно:
указать параметр
-q
; илиЗаключите имя владельца, таблицы или представления в квадратные скобки (
[]
) в кавычки.
Проверка данных
Bcp теперь применяет проверку данных и проверки данных, которые могут привести к сбою сценариев, если они выполняются на недопустимых данных в файле данных. Например, программа bcp проверяет, что:
собственные представления типов данных float или real являются допустимыми.
Данные в Юникоде имеют четную длину.
Формы недопустимых данных, которые могут быть массово импортированы в более ранних версиях SQL Server, могут не загружаться сейчас; В то время как в более ранних версиях сбой не возникал до тех пор, пока клиент не пытался получить доступ к недопустимым данным. Добавленная проверка снижает вероятность непредвиденных ситуаций во время запроса данных после массовой загрузки.
Массовый экспорт или импорт документов SQLXML
Чтобы выполнить массовый экспорт или импорт SQLXML-данных используйте один из следующих типов данных в файле форматирования:
Тип данных | Действие |
---|---|
SQLCHAR или SQLVARYCHAR | Данные отправляются в кодовой странице клиента или кодовой странице, определенной параметрами сортировки. Результат тот же, что и при указании параметра -c без указания файла форматирования. |
SQLNCHAR или SQLNVARCHAR | Данные отправляются в Юникоде. Результат тот же, что и при указании параметра -w без указания файла форматирования. |
SQLBINARY или SQLVARYBIN | Данные отправляются без преобразования. |
Разрешения
Для bcp out
операции требуется разрешение SELECT в исходной таблице.
Для bcp in
операции минимально требуются разрешения SELECT/INSERT в целевой таблице. Кроме того, разрешение ALTER TABLE требуется, если одно из следующих условий имеет значение true:
Существуют ограничения, а указание CHECK_CONSTRAINTS не указано.
Примечание.
Ограничения отключены по умолчанию. Чтобы явно включить ограничения, используйте
-h
параметр с указанием CHECK_CONSTRAINTS.Триггеры существуют, а указание FIRE_TRIGGER не указано.
Примечание.
Триггеры не срабатывают по умолчанию. Для явного срабатывания триггеров используйте
-h
параметр с указанием FIRE_TRIGGERS.Вы используете
-E
параметр импорта значений удостоверений из файла данных.
Примечание.
Требование разрешения ALTER TABLE для целевой таблицы было новым в SQL Server 2005 (9.x). Это новое требование может привести к сбою сценариев bcp , которые не применяют триггеры и проверки ограничений, если учетная запись пользователя не имеет разрешений ALTER table для целевой таблицы.
Рекомендации по режиму символов (-c
) и собственному режиму (-n
)
В этом разделе содержатся рекомендации по режиму символов (-c
) и собственному режиму (-n
).
(Администратор или пользователь) По возможности используйте собственный формат (
-n
), чтобы избежать проблемы с разделителем. Используйте собственный формат для экспорта и импорта с помощью SQL Server. Экспортируйте данные из SQL Server с помощью-c
или-w
параметра, если данные будут импортированы в базу данных, отличной от SQL Server.(Администратор) Проверьте данные при использовании BCP OUT. Например, при использовании BCP OUT, BCP IN и BCP OUT убедитесь, что данные экспортируются правильно, а значения конца не используются как часть некоторых значений данных. Рекомендуется переопределить терминаторы по умолчанию (использование
-t
и-r
параметры) случайными шестнадцатеричными значениями, чтобы избежать конфликтов между значениями конца и значениями данных.(Пользователь) Используйте длинные и уникальные признаки конца (любая последовательность байт или символов), чтобы свести к минимуму возможность конфликта с фактическим строковым значением. Это можно сделать с помощью
-t
и-r
параметров.
Примеры
Примеры, приведенные в этом разделе, используют WideWorldImporters
пример базы данных для SQL Server 2016 (13.x) и более поздних версий, База данных SQL Azure и Управляемый экземпляр SQL Azure. WideWorldImporters
можно скачать отсюда: https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0. Инструкции RESTORE для восстановления образца базы данных см . в инструкциях RESTORE.
Пример условий теста
Если указано в противном случае, в примерах предполагается, что вы используете проверку подлинности Windows и имеете надежное подключение к экземпляру сервера, на котором выполняется команда bcp . Имя каталога D:\BCP
используется во многих примерах.
Следующий скрипт создает пустую копию таблицы, а затем добавляет ограничение первичного WideWorldImporters.Warehouse.StockItemTransactions
ключа. Запустите следующий скрипт T-SQL в 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 TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;
А. Определение версии служебной программы bcp
В командной строке введите следующую команду:
bcp -v
B. Копирование строк таблицы в файл данных (с доверенным подключением)
В следующих примерах показан out
параметр таблицы WideWorldImporters.Warehouse.StockItemTransactions
.
Базовая
В этом примере создается файл данных с именем
StockItemTransactions_character.bcp
, и в него копируются данные таблицы в символьном формате.В командной строке введите следующую команду:
bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -T
Расширенный
В этом примере создается файл данных с именем
StockItemTransactions_native.bcp
, и в него копируются данные таблицы в собственном формате. Пример также указывает максимальное количество синтаксических ошибок, файл ошибок и выходной файл.В командной строке введите следующую команду:
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
. Error_out.log
должно быть пустым. Сравните размеры файлов между StockItemTransactions_character.bcp
и StockItemTransactions_native.bcp
.
В. Копирование строк таблицы в файл данных (с проверкой подлинности в смешанном режиме)
В следующем примере показан out
параметр в WideWorldImporters.Warehouse.StockItemTransactions
таблице. В этом примере создается файл данных с именем StockItemTransactions_character.bcp
, и в него копируются данные таблицы в символьном формате.
В примере предполагается, что вы используете проверку подлинности в смешанном режиме, и необходимо использовать -U
параметр для указания идентификатора входа. Кроме того, если вы не подключаетесь к экземпляру SQL Server по умолчанию на локальном компьютере, используйте -S
параметр, чтобы указать имя системы и, при необходимости, имя экземпляра.
В командной строке введите следующую команду: (системная строка запрашивает пароль.)
bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>
D. Копирование данных из файла в таблицу
В следующих примерах показан in
параметр таблицы WideWorldImporters.Warehouse.StockItemTransactions_bcp
с помощью файлов, созданных ранее.
Базовая
В этом примере используется ранее созданный файл данных
StockItemTransactions_character.bcp
.В командной строке введите следующую команду:
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -T
Расширенный
В этом примере используется ранее созданный файл данных
StockItemTransactions_native.bcp
. Пример также: используйте указаниеTABLOCK
, указывает размер пакета, максимальное количество синтаксические ошибки, файл ошибки и выходной файл.В командной строке введите следующую команду:
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
.
Е. Копирование определенного столбца в файл данных
Чтобы скопировать определенный столбец, можно использовать queryout
этот параметр. Следующий пример копирует в файл данных из таблицы StockItemTransactionID
только столбец Warehouse.StockItemTransactions
.
В командной строке введите следующую команду:
bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\BCP\StockItemTransactionID_c.bcp -c -T
F. Копирование определенной строки в файл данных
Чтобы скопировать определенную queryout
строку, можно использовать этот параметр. Следующий пример копирует только строку человека с именем Amy Trefl
из таблицы WideWorldImporters.Application.People
в файл данных Amy_Trefl_c.bcp
.
Примечание.
Параметр -d
используется для идентификации базы данных.
В командной строке введите следующую команду:
bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\BCP\Amy_Trefl_c.bcp -d WideWorldImporters -c -T
G. Копирование данных из запроса в файл данных
Чтобы скопировать результирующий набор из инструкции Transact-SQL в файл данных, используйте этот queryout
параметр. Следующий пример копирует имена из таблицы WideWorldImporters.Application.People
, упорядоченные по полному имени, в файл данных People.txt
.
Примечание.
Параметр -t
используется для создания файла с разделителями-запятыми.
В командной строке введите следующую команду:
bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\BCP\People.txt -t, -c -T
H. Создание файлов форматирования
Следующий пример создает три разных файла форматирования для таблицы Warehouse.StockItemTransactions
в базе данных WideWorldImporters
. Просмотрите содержимое каждого из созданных файлов.
В командной строке введите следующие команды:
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. Дополнительные сведения об использовании клиента bcp 9.0 см. в разделе "Примечания".
Дополнительные сведения см. в разделе "Использование файлов форматирования, отличных от XML(SQL Server) и XML Format Files (SQL Server).
I. Использование файла форматирования для массового импорта с помощью bcp
Чтобы использовать ранее созданный файл форматирования при импорте данных в экземпляр SQL Server, используйте -f
параметр с параметром in
. Например, следующая команда выполняет массовое копирование содержимого файла данных StockItemTransactions_character.bcp
в копию таблицы Warehouse.StockItemTransactions_bcp
с помощью ранее созданного файла форматирования StockItemTransactions_c.xml
.
Примечание.
Параметр -L
используется для импорта только первых 100 записей.
В командной строке введите следующую команду:
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in D:\BCP\StockItemTransactions_character.bcp -L 100 -f D:\BCP\StockItemTransactions_c.xml -T
Примечание.
Файлы форматирования используются в тех случаях, когда поля файла данных отличаются от столбцов таблицы, например: по количеству, порядку или типу данных. Дополнительные сведения см. в разделе "Формат файлов для импорта или экспорта данных" (SQL Server).
J. Указание кодовой страницы
В следующем примере частичного кода показан импорт bcp при указании кодовой страницы 65001:
bcp MyTable in "D:\data.csv" -T -c -C 65001 -t , ...
K. Пример выходного файла с помощью настраиваемых полей и терминаторов строк
В этом примере показаны два примера файлов, созданных bcp с помощью настраиваемых полей и терминаторов строк.
Создайте таблицу
dbo.T1
вtempdb
базе данных с двумя столбцамиID
иName
.USE tempdb; GO CREATE TABLE dbo.T1 (ID INT, [Name] NVARCHAR(20)); GO INSERT INTO dbo.T1 VALUES (1, N'Natalia'); INSERT INTO dbo.T1 VALUES (2, N'Mark'); INSERT INTO dbo.T1 VALUES (3, N'Randolph'); GO
Создайте выходной файл из таблицы примера
dbo.T1
с помощью пользовательского конца поля.В этом примере имя сервера —
MYSERVER
это имя, а конечный оператор настраиваемого поля указывается.-t ,
bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t ,
Вот результирующий набор.
1,Natalia 2,Mark 3,Randolph
Создайте выходной файл из таблицы примера
dbo.T1
с помощью пользовательского конца поля и пользовательского конца строки.В этом примере имя сервера —
MYSERVER
это имя настраиваемого поля, задается-t
терминатором , а пользовательский терминатор строк указывается в параметре-r :
.bcp dbo.T1 out T1.txt -T -S MYSERVER -d tempdb -w -t , -r :
Вот результирующий набор.
1,Natalia:2,Mark:3,Randolph:
Примечание.
Терминатор строки всегда добавляется даже к последней записи. Однако терминатор поля не добавляется в последнее поле.
Дополнительные примеры
В следующих статьях приведены примеры использования bcp:
Форматы данных для массового экспорта или импорта (SQL Server)
- Использование собственного формата для импорта или экспорта данных (SQL Server)
- Использование формата символов для импорта или экспорта данных (SQL Server)
- Использование собственного формата Юникода для импорта или экспорта данных (SQL Server)
- Использование формата символов Юникода для импорта или экспорта данных (SQL Server)
Сохранение значений NULL или значений по умолчанию во время массового импорта (SQL Server)
Сохранение значений удостоверений при массовом импорте данных (SQL Server)
Файлы форматирования для импорта или экспорта данных (SQL Server)
- Создание файла форматирования (SQL Server)
- Использование файла форматирования для массового импорта данных (SQL Server)
- Использование файла форматирования для пропуска столбца таблицы (SQL Server)
- Использование файла форматирования для пропуска поля данных (SQL Server)
- Использование файла форматирования для сопоставления столбцов таблиц с полями файлов данных (SQL Server)
Примеры массового импорта и экспорта XML-документов (SQL Server)
Рекомендации и ограничения
- Программа bcp имеет ограничение, что в сообщении об ошибке отображаются только 512-байтовые символы. Отображаются только первые 512 байт сообщения об ошибке.
Связанный контент
- Подготовка данных для массового экспорта или импорта
- 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
- Reddit: общие сведения о SQL Server
- Условия лицензии и информация о Microsoft SQL Server
- Варианты поддержки для бизнес-пользователей
- Дополнительная справка и отзывы по SQL Server
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.
Дополнительные сведения см. в разделе Участие в работе над документацией по SQL Server.