Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di 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 queryout, 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 inperintah - Mengekspor data dari tabel menggunakan
bcp outperintah
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 menggantiusernamedan<password>seperlunya sebelum menjalankan perintah.
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Buat database BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Buat tabel TestEmployees di database 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));"
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 Ingatlah untuk mengganti nama pengguna dan <password> seperlunya sebelum menjalankan perintah.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <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 pemisah bidang. Kami menggunakancommasebagai pembatas bidang untuk catatan dalam berkas data kami
Catatan
Kami tidak menentukan terminator baris kustom dalam contoh ini. Baris dalam file data teks berhasil diakhiri dengan newline ketika kami menggunakan perintah cat untuk membuat file data sebelumnya.
Anda dapat memverifikasi bahwa data berhasil diimpor dengan menjalankan perintah berikut di jendela terminal Anda. Ingatlah untuk mengganti username dan <password> seperlunya sebelum menjalankan perintah.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <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 <password> seperlunya sebelum menjalankan perintah.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <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