Menyalin data secara massal dengan bcp ke SQL Server di Linux
Berlaku untuk: SQL Server - Linux
Artikel ini menunjukkan cara menggunakan utilitas bcp untuk menyalin data secara massal antara instans SQL Server di Linux dan file data dalam format yang ditentukan pengguna.
Anda dapat menggunakan bcp untuk mengimpor sejumlah besar baris ke dalam tabel SQL Server atau untuk mengekspor data dari tabel SQL Server ke dalam file data. Kecuali ketika digunakan dengan opsi kueri, bcp tidak memerlukan pengetahuan tentang Transact-SQL. Utilitas baris perintah bcp berfungsi dengan Microsoft SQL Server yang berjalan secara lokal atau di cloud, di Linux, Windows atau Docker dan Azure SQL Database dan Azure Synapse Analytics.
Artikel ini menunjukkan cara:
- Mengimpor data ke dalam tabel menggunakan
bcp in
perintah - Mengekspor data dari tabel menggunakan
bcp out
perintah
Menginstal alat baris perintah SQL Server
bcp adalah bagian dari alat baris perintah SQL Server, yang tidak diinstal secara otomatis dengan SQL Server di Linux. Jika Anda belum menginstal alat baris perintah SQL Server di komputer Linux, Anda harus menginstalnya. Untuk informasi selengkapnya tentang cara menginstal alat, pilih distribusi Linux Anda dari daftar berikut:
Mengimpor data dengan bcp
Dalam tutorial ini, Anda membuat database sampel dan tabel pada instans SQL Server lokal (localhost
) lalu menggunakan bcp untuk memuat ke dalam tabel sampel dari file teks pada disk.
Membuat sampel database dan tabel
Mari kita mulai dengan membuat database sampel dengan tabel sederhana yang digunakan di sisa tutorial ini.
Pada kotak Linux Anda, buka terminal perintah.
Salin dan tempel perintah berikut ke jendela terminal. Perintah ini menggunakan utilitas baris perintah sqlcmd untuk membuat database sampel (
BcpSampleDB
) dan tabel (TestEmployees
) pada instans SQL Server lokal (localhost
). Ingatlah untuk menggantiusername
dan<your_password>
seperlunya sebelum menjalankan perintah.
Buat database BcpSampleDB
:
sqlcmd -S localhost -U sa -P <your_password> -Q "CREATE DATABASE BcpSampleDB;"
Buat tabel TestEmployees
di database BcpSampleDB
:
sqlcmd -S localhost -U sa -P <your_password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"
Membuat file data sumber
Salin dan tempel perintah berikut ke jendela terminal Anda. Kami menggunakan perintah bawaan cat
untuk membuat file data teks sampel dengan tiga rekaman menyimpan file di direktori beranda Anda sebagai ~/test_data.txt
. Bidang dalam rekaman dibatasi oleh koma.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Anda dapat memverifikasi bahwa file data dibuat dengan benar dengan menjalankan perintah berikut di jendela terminal Anda:
cat ~/test_data.txt
Ini akan menampilkan yang berikut ini di jendela terminal Anda:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Mengimpor data dari file data sumber
Salin dan tempel perintah berikut ke jendela terminal. Perintah ini menggunakan bcp untuk menyambungkan ke instans SQL Server lokal (localhost
) dan mengimpor data dari file data (~/test_data.txt
) ke dalam tabel (TestEmployees
) dalam database (BcpSampleDB
). Ingatlah untuk mengganti nama pengguna dan <your_password>
seperlunya sebelum menjalankan perintah.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <your_password> -d BcpSampleDB -c -t ','
Berikut adalah ringkasan singkat parameter baris perintah yang kami gunakan dengan bcp dalam contoh ini:
-S
: menentukan instans SQL Server yang akan disambungkan-U
: menentukan ID masuk yang digunakan untuk menyambungkan ke SQL Server-P
: menentukan kata sandi untuk ID masuk-d
: menentukan database yang akan disambungkan-c
: melakukan operasi menggunakan jenis data karakter-t
: menentukan terminator bidang. Kami menggunakancomma
sebagai terminator bidang untuk rekaman dalam file data kami
Catatan
Kami tidak menentukan terminator baris kustom dalam contoh ini. Baris dalam file data teks dihentikan dengan newline
benar saat kami menggunakan cat
perintah untuk membuat file data sebelumnya.
Anda dapat memverifikasi bahwa data berhasil diimpor dengan menjalankan perintah berikut di jendela terminal Anda. Ingatlah untuk mengganti dan <your_password>
seperlunya username
sebelum menjalankan perintah.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <your_password> -I -Q "SELECT * FROM TestEmployees;"
Ini akan menampilkan hasil berikut:
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Mengekspor data dengan bcp
Dalam tutorial ini, Anda menggunakan bcp untuk mengekspor data dari tabel sampel yang kami buat sebelumnya ke file data baru.
Salin dan tempel perintah berikut ke jendela terminal. Perintah ini menggunakan utilitas baris perintah bcp untuk mengekspor data dari tabel TestEmployees
dalam database BcpSampleDB
ke file data baru yang disebut ~/test_export.txt
. Ingatlah untuk mengganti nama pengguna dan <your_password>
seperlunya sebelum menjalankan perintah.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <your_password> -d BcpSampleDB -c -t ','
Anda dapat memverifikasi bahwa data diekspor dengan benar dengan menjalankan perintah berikut di jendela terminal Anda:
cat ~/test_export.txt
Ini akan menampilkan yang berikut ini di jendela terminal Anda:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany