Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
В этой статье показано, как использовать служебную программу bcp для массового копирования данных между экземпляром SQL Server на Linux и файлом данных в указанном пользователем формате.
Вы можете использовать bcp для импорта большого количества строк в таблицы SQL Server или экспорта данных из таблиц SQL Server в файлы данных. За исключением случаев, когда используется параметр запроса, bcp не требует знаний о Transact-SQL. Служебная программа командной строки bcp работает с Microsoft 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). При необходимости перед выполнением команд заменитеusernameи<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). При необходимости перед выполнением команд замените имя пользователя и <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: указывает признак конца поля. Мы используемcommaв качестве разделителя полей для записей в нашем файле данных.
Note
В этом примере мы не указываем пользовательский терминатор строк. Когда мы использовали команду newline для создания файла данных, строки в текстовом файле данных были корректно завершены символом cat.
Проверьте успешное завершение импорта данных, выполнив в окне терминала следующую команду: При необходимости перед выполнением команд замените username и <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данных. При необходимости перед выполнением команд замените имя пользователя и <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