Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
В этой статье показано, как использовать служебную программу bcp для массового копирования данных между экземпляром SQL Server на Linux и файлом данных в указанном пользователем формате.
Вы можете использовать bcp для импорта большого количества строк в таблицы SQL Server или экспорта данных из таблиц SQL Server в файлы данных. За исключением случаев, когда используется параметр запроса, bcp не требует знаний о Transact-SQL.
bcp Командная утилита работает с SQL Server, работающим локально или в облаке на Linux, Windows или Docker, а также с База данных SQL Azure и Azure Synapse Analytics.
В этой статье показано, как:
- Импорт данных в таблицу с помощью команды
bcp in - Экспорт данных из таблицы с помощью команды
bcp out
Установка программ командной строки SQL Server
bcp входит в состав средств командной строки SQL Server, которые не устанавливаются автоматически с SQL Server на Linux. Если вы еще не установили средства командной строки SQL Server на компьютере Linux, их необходимо установить. Чтобы получить дополнительные сведения об установке программ, выберите нужный дистрибутив Linux из следующего списка:
Импорт данных с помощью bcp
В этом руководстве вы создадите пример базы данных и таблицу на локальном экземпляре SQL Server (localhost), а затем используйте bcp для загрузки в пример таблицы из текстового файла на диске.
Создание образца базы данных и таблицы
Начните с создания примера базы данных с простой таблицей, используемой в остальной части этого руководства.
На компьютере Linux откройте терминал ввода команд.
Скопируйте и вставьте в окно терминала следующие команды. Эти команды используют утилиту sqlcmd для создания образцовой базы данных (
BcpSampleDB) и таблицы (TestEmployees) на локальном экземпляре SQL Server (localhost). Не забывайте заменятьsaи<password>при необходимости перед запуском команд.
Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.
Создание базы данных BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Создайте таблицу TestEmployees в базе данных BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"
Создание файла исходных данных
Скопируйте и вставьте в окно терминала следующую команду. Встроенная cat команда создаёт образец текстового файла с тремя записями и сохраняет файл в вашей домашней директории как ~/test_data.txt. Поля в записях разделяются запятыми.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Проверьте правильность создания файла данных, выполнив в окне терминала следующую команду:
cat ~/test_data.txt
В окне терминала должны отобразиться следующие строки:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Импорт данных из исходного файла данных
Скопируйте и вставьте следующую команду в окно терминала. Эта команда использует bcp для подключения к локальному экземпляру SQL Server (localhost) и импорта данных из файла данных (~/test_data.txt) в таблицу (TestEmployees) в базе данных (BcpSampleDB). Не забудьте заменить sa и <password> при необходимости перед запуском команды.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Ниже приведен краткий обзор параметров командной строки, используемых в bcp этом примере:
-
-S: указывает экземпляр SQL Server, к которому выполняется подключение. -
-U: указывает идентификатор входа, используемый для подключения к SQL Server. -
-P: указывает пароль для идентификатора имени входа. -
-d: указывает базу данных, к которой нужно подключиться. -
-c: выполняет операцию, используя символьный тип данных. -
-t: указывает признак конца поля. В этом примере используется запятая в качестве терминатора поля для записей в файле данных
Note
В этом примере мы не указываем пользовательский терминатор строк. Когда мы использовали команду newline для создания файла данных, строки в текстовом файле данных были корректно завершены символом cat.
Проверьте успешное завершение импорта данных, выполнив в окне терминала следующую команду: Не забудьте заменить sa и <password> при необходимости перед запуском команды.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Должны отобразиться следующие результаты:
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Экспорт данных с помощью bcp
В этом руководстве вы используете bcp для экспорта данных из примера таблицы, созданной ранее в новый файл данных.
Скопируйте и вставьте следующую команду в окно терминала. Эта команда использует bcp утилиту командной строки для экспорта данных из таблицы TestEmployees в базе BcpSampleDB данных в новый файл данных под названием ~/test_export.txt. Не забудьте заменить sa и <password> при необходимости перед запуском команды.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Проверьте правильность экспорта данных, выполнив в окне терминала следующую команду:
cat ~/test_export.txt
В окне терминала должны отобразиться следующие строки:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany