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
Azure SQL Database
Instans Terkelola Azure SQL
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
Utilitas program salin massal (bcp) menyalin data secara massal antara instans SQL Server dan file data dalam format yang ditentukan pengguna.
Gunakan utilitas bcp untuk mengimpor sejumlah besar baris baru ke dalam tabel SQL Server atau untuk mengekspor data dari tabel ke dalam file data. Kecuali ketika digunakan dengan queryout opsi , utilitas tidak memerlukan pengetahuan tentang Transact-SQL. Untuk mengimpor data ke dalam tabel, Anda harus menggunakan file format yang dibuat untuk tabel tersebut, atau memahami struktur tabel dan jenis data yang valid untuk kolomnya.
Untuk informasi selengkapnya tentang versi bcp mana yang diinstal pada sistem Anda, persyaratan sistem, dan cara mendapatkan bcp, lihat Mengunduh dan menginstal utilitas bcp.
Note
File data bcp tidak menyertakan informasi skema atau format apa pun. Jika Anda menggunakan bcp untuk mencadangkan data, dan kemudian menghilangkan atau mengubah tabel sumber, Anda memerlukan definisi tabel yang identik atau file format untuk mengimpor data kembali.
Untuk konvensi sintaksis yang digunakan untuk sintaks bcp , lihat konvensi sintaksTransact-SQL (Transact-SQL).
Cara menggunakan bcp
Untuk informasi tentang cara menggunakan bcp, termasuk contoh perintah, lihat Cara menggunakan utilitas bcp.
Menggunakan bcp di Linux dan macOS
Untuk informasi tentang cara menginstal alat baris perintah di macOS dan Linux, lihat Menginstal alat baris perintah SQL Server sqlcmd dan bcp di Linux.
Pertimbangan untuk bcp di Linux dan macOS
Pemisah kolom adalah tab (
\t).Pemutus baris adalah karakter baris baru (
\n).Untuk transfer SQL Server ke SQL Server, gunakan format asli (
-n). Gunakan format karakter (-c) hanya ketika data menyeberang ke sistem non-SQL Server atau ketika file data tidak boleh berisi karakter yang diperluas. Untuk informasi selengkapnya, lihat Mode karakter dan praktik terbaik mode bawaan.Anda harus menambahkan tanda kutip atau meloloskan backslash (
\) pada argumen baris perintah. Misalnya, untuk menentukan baris baru sebagai terminator baris kustom, gunakan salah satu mekanisme berikut:-r\\n-r"\n"-r'\n'
Dukungan TDS 8.0
SQL Server 2025 (17.x) memperkenalkan dukungan TDS 8.0 untuk utilitas bcp .
Syntax
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 Microsoft Entra 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 ]
[ -u ]
[ -v ]
[ -V (80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170) ]
[ -w ]
[ -x ]
[ -Y [ s | m | o ] ]
[ -z ]
Opsi baris perintah
Tabel berikut mencantumkan opsi baris perintah yang tersedia di bcp, dan sistem operasi mana yang mereka dukung.
1 Memerlukan bcp versi 18 atau yang lebih baru, yang dikirim dengan SQL Server 2025 (17.x).
2 ODBC 18.6.1.1 dan versi yang lebih baru.
Mode objek dan transfer
database_name
Nama database yang berisi tabel atau tampilan yang ditentukan. Jika Anda tidak menentukan parameter ini, database default untuk pengguna akan digunakan.
Anda juga dapat secara eksplisit menentukan nama database dengan -d.
schema
Nama pemilik tabel atau tampilan. skema bersifat opsional jika pengguna yang melakukan operasi memiliki tabel atau tampilan yang ditentukan. Jika Anda tidak menentukan skema, dan pengguna yang melakukan operasi tidak memiliki tabel atau tampilan yang ditentukan, SQL Server mengembalikan pesan kesalahan, dan operasi dibatalkan.
table_name
Nama tabel tujuan saat mengimpor data ke SQL Server (in), dan tabel sumber saat mengekspor data dari SQL Server (out).
view_name
Nama tampilan tujuan saat menyalin data ke SQL Server (in), dan tampilan sumber saat menyalin data dari SQL Server (out). Saat digunakan sebagai tujuan (in), tampilan hanya didukung jika semua kolomnya merujuk ke tabel yang sama. Pembatasan ini tidak berlaku saat tampilan digunakan sebagai sumber (out). Untuk informasi selengkapnya tentang pembatasan untuk menyalin data ke dalam tampilan, lihat INSERT.
"query"
Kueri Transact-SQL yang mengembalikan tataan hasil. Jika kueri mengembalikan beberapa kumpulan hasil, hanya kumpulan hasil pertama yang disalin ke file data; kumpulan hasil berikutnya diabaikan. Gunakan tanda kutip ganda di sekitar kueri dan tanda kutip tunggal di sekitar apa pun yang disematkan dalam kueri. Anda juga harus menentukan queryout kapan menyalin data secara massal dari kueri.
Kueri dapat mereferensikan prosedur tersimpan selama semua tabel yang dirujuk di dalam prosedur tersimpan ada sebelum menjalankan pernyataan bcp . Misalnya, jika prosedur tersimpan menghasilkan tabel sementara, pernyataan bcp gagal karena tabel sementara hanya tersedia pada waktu proses dan bukan pada waktu eksekusi pernyataan. Dalam hal ini, pertimbangkan untuk menyisipkan hasil prosedur tersimpan ke dalam tabel lalu gunakan bcp untuk menyalin data dari tabel ke dalam file data.
di / dalam
Menyalin data dari file ke dalam tabel atau tampilan database. Menentukan arah salinan massal.
out
Menyalin data dari tabel database atau menampilkan ke file. Menentukan arah salinan massal.
Jika Anda menentukan file yang sudah ada, file tersebut akan ditimpa. Saat utilitas bcp mengekstrak data, utilitas tersebut mewakili string kosong sebagai null, dan string null sebagai string kosong.
data_file
Jalur lengkap file data. Saat Anda mengimpor data secara massal ke SQL Server, file data berisi data untuk disalin ke dalam tabel atau tampilan yang ditentukan. Saat Anda mengekspor data secara massal dari SQL Server, file data berisi data yang disalin dari tabel atau tampilan. Jalur dapat memiliki dari 1 hingga 255 karakter. File data dapat berisi maksimum 2^63 - 1 baris.
queryout
Menyalin data dari kueri dan harus ditentukan hanya saat penyalinan data dalam jumlah besar dari kueri.
format
Membuat file format berdasarkan opsi yang ditentukan (-n, , -c, -watau -N) dan pemisah tabel atau tampilan. Saat menyalin data secara massal, perintah bcp dapat merujuk ke file format, yang menyelamatkan Anda dari memasukkan kembali informasi format secara interaktif. Opsi format memerlukan -f opsi ; membuat file format XML juga memerlukan -x opsi . Untuk informasi selengkapnya, lihat Membuat file format dengan bcp (SQL Server). Anda harus menentukan nul sebagai nilai (format nul).
-q
Menjalankan pernyataan SET QUOTED_IDENTIFIER ON dalam koneksi antara utilitas bcp dan instans SQL Server. Gunakan opsi ini untuk menentukan database, pemilik, tabel, atau nama tampilan yang berisi spasi atau tanda kutip tunggal. Sertakan seluruh tabel tiga bagian atau nama tampilan dalam tanda kutip ("").
Untuk menentukan nama database yang berisi spasi atau tanda kutip tunggal, Anda harus menggunakan opsi -q.
-q tidak berlaku untuk nilai yang diteruskan ke -d.
Untuk informasi selengkapnya, lihat bagian Catatan di artikel ini.
Koneksi dan autentikasi
-S [server_name[\instance_name]]
Menentukan nama instans SQL Server untuk disambungkan, atau jika Anda menggunakan -D, DSN.
Jika Anda tidak menentukan server, utilitas bcp tersambung ke instans default SQL Server di komputer lokal. Anda memerlukan opsi ini saat menjalankan perintah bcp dari komputer jarak jauh di jaringan atau instans bernama lokal. Untuk menyambungkan ke instans default SQL Server di server, tentukan hanya server_name. Untuk menyambungkan ke instans SQL Server bernama, tentukan <server_name>\<instance_name>.
-d database_name
Menentukan database yang akan disambungkan. Secara default, bcp tersambung ke database default Anda. Jika Anda menentukan -d <database_name> dan nama tiga bagian (database_name.schema.table, diteruskan sebagai parameter pertama ke bcp), kesalahan terjadi karena Anda tidak dapat menentukan nama database dua kali. Jika database_name dimulai dengan tanda hubung (-) atau garis miring (/), jangan tambahkan spasi antara -d dan nama database.
-U login_id
Menentukan ID masuk yang digunakan untuk menyambungkan ke SQL Server.
-P kata sandi
Menentukan kata sandi untuk ID masuk. Jika Anda tidak menggunakan opsi ini, perintah bcp akan meminta kata sandi. Jika Anda menggunakan opsi ini di akhir prompt perintah tanpa kata sandi, bcp menggunakan kata sandi default (NULL).
Penting
Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat.
Untuk menyembunyikan kata sandi Anda, jangan tentukan opsi -P bersama dengan opsi -U. Sebagai gantinya, setelah menentukan bcp bersama dengan -U opsi dan sakelar lainnya (jangan tentukan -P), tekan tombol Enter , dan perintah akan meminta kata sandi. Metode ini memastikan bahwa kata sandi Anda diselubungi saat dimasukkan.
Jika kata sandi dimulai dengan tanda hubung (-) atau garis miring (/), jangan tambahkan spasi antara -P dan nilai kata sandi .
Di Linux dan macOS, saat digunakan dengan -G opsi tanpa -U, -P menentukan file yang berisi token akses Microsoft Entra (v17.8 dan versi yang lebih baru). File token harus dalam format UTF-16LE (tanpa BOM). Untuk informasi selengkapnya, lihat Mengautentikasi dengan ID Microsoft Entra di bcp.
-G
Berlaku untuk: Azure SQL Database, Azure SQL Managed Instance, database SQL di Microsoft Fabric, Azure Synapse Analytics, dan SQL Server 2022 (16.x) dan versi yang lebih baru.
Pengalih ini digunakan oleh klien untuk menentukan bahwa seorang pengguna diautentikasi dengan ID Microsoft Entra. Sakelar -G memerlukan versi bcp 14.0.3008.27 atau versi yang lebih baru. Untuk menentukan versi Anda, jalankan bcp -v. Untuk informasi selengkapnya, lihat Menggunakan autentikasi Microsoft Entra dengan SQL Database atau Azure Synapse Analytics atau Autentikasi dalam database SQL di Microsoft Fabric.
Untuk detail selengkapnya tentang autentikasi Microsoft Entra di bcp, lihat Mengautentikasi dengan ID Microsoft Entra di bcp.
-D
Menyebabkan nilai yang diteruskan ke bcp -S opsi ditafsirkan sebagai nama sumber data (DSN).
-D dapat muncul di mana saja di baris perintah; urutan relatif terhadap -S tidak masalah.
DSN dapat digunakan untuk:
- Sematkan opsi driver untuk menyederhanakan baris perintah.
- Terapkan opsi driver yang tidak dapat diakses dari baris perintah, seperti
MultiSubnetFailover. - Bantu lindungi kredensial sensitif agar tidak dapat ditemukan sebagai argumen baris perintah.
Untuk informasi selengkapnya, lihat Dukungan DSN di sqlcmd dan bcp.
-K tujuan_aplikasi
Menyatakan jenis beban kerja aplikasi saat menyambungkan ke server. Satu-satunya nilai yang dimungkinkan adalah ReadOnly. Jika Anda tidak menentukan -K, utilitas bcp tidak mendukung konektivitas ke replika sekunder dalam grup ketersediaan AlwaysOn. Untuk informasi selengkapnya, lihat Memindahkan beban kerja hanya-baca ke replika sekunder grup ketersediaan Always On.
-l login_timeout
Menentukan batas waktu masuk. Opsi -l menentukan jumlah detik sebelum waktu masuk ke SQL Server habis saat Anda mencoba menyambungkan ke server. Batas waktu masuk default adalah 15 detik. Batas waktu masuk harus berupa angka antara 0 dan 65534. Jika nilai yang Anda berikan bukan numerik atau tidak termasuk dalam rentang tersebut, bcp akan menghasilkan pesan kesalahan. Nilai 0 menentukan batas waktu tak terbatas.
-T
Menentukan bahwa utilitas bcp tersambung ke SQL Server dengan koneksi tepercaya menggunakan keamanan terintegrasi. Kredensial keamanan pengguna jaringan, login_id, dan kata sandi tidak diperlukan. Jika Anda tidak menentukan -T, Anda perlu menentukan -U dan -P untuk berhasil terhubung.
Penting
Gunakan -T hanya saat menyambungkan ke SQL Server dengan koneksi tepercaya terintegrasi Windows. Saat menyambungkan ke Azure SQL Database atau Azure Synapse Analytics, -T (autentikasi terintegrasi Windows) tidak didukung. Untuk autentikasi Microsoft Entra terhadap layanan Azure atau SQL Server 2022 (16.x) dan versi yang lebih baru, gunakan -G (lihat Mengautentikasi dengan ID Microsoft Entra di bcp).
-Y[s|m|o]
Berlaku untuk: bcp versi 18 dan versi yang lebih baru, yang dikirim dengan SQL Server 2025 (17.x).
Menentukan apakah koneksi menggunakan enkripsi TLS melalui jaringan.
-Y dapat berupa o (untuk Optional), m (untuk Mandatory, default), atau s (untuk Strict). Jika Anda tidak menyertakan -Y, maka -Ym (untuk Mandatory) adalah default.
-u
Berlaku untuk: bcp versi 18 dan versi yang lebih baru, yang dikirim dengan SQL Server 2025 (17.x).
Percayai sertifikat server. Saat digunakan dengan opsi enkripsi untuk koneksi, mengaktifkan enkripsi menggunakan sertifikat server yang ditandatangani sendiri.
Representasi data
-c
Melakukan operasi menggunakan jenis data karakter. Opsi ini tidak meminta konfirmasi untuk setiap isian. Ini menggunakan char sebagai jenis penyimpanan, tanpa awalan, dan menggunakan \t (karakter tab) sebagai pemisah bidang dan \r\n (karakter baris baru) sebagai terminator baris.
-c tidak kompatibel dengan -w.
Untuk informasi selengkapnya, lihat Menggunakan format karakter untuk mengimpor atau mengekspor data (SQL Server).
Untuk praktik terbaik, lihat Praktik terbaik mode karakter dan mode bawaan.
-C { ACP | OEM | RAW | code_page }
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Menentukan halaman kode data dalam file data. code_page hanya relevan jika data berisi kolom karakter, varchar, atau teks dengan nilai karakter lebih besar dari 127 atau kurang dari 32.
Tentukan nama pengurutan untuk setiap kolom dalam file format, kecuali jika Anda ingin opsi 65001 memiliki prioritas atas spesifikasi pengurutan atau halaman kode.
| Nilai halaman kode | Description |
|---|---|
ACP |
ANSI/Microsoft Windows (ISO 1252). |
OEM |
Halaman kode default yang digunakan oleh klien. Halaman kode ini adalah default jika Anda tidak menentukan -C. |
RAW |
Tidak ada konversi dari satu halaman kode ke halaman lain yang terjadi. Opsi ini adalah yang tercepat karena tidak ada konversi yang terjadi. |
<code_page> |
Nomor halaman kode tertentu, seperti 850. Versi sebelum SQL Server 2016 (13.x) tidak mendukung halaman kode 65001 (pengodean UTF-8). Versi yang dimulai dengan 13 dapat mengimpor pengodean UTF-8 ke versi SQL Server yang lebih lama. |
-n
Melakukan operasi penyalinan massal menggunakan tipe data asli dari basis data. Opsi ini tidak mengharuskan input untuk setiap bidang. Ini menggunakan nilai bawaan.
Untuk informasi selengkapnya, lihat Menggunakan format asli untuk mengimpor atau mengekspor data (SQL Server).
Untuk praktik terbaik, lihat Mode karakter dan praktik terbaik mode asli.
-N
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Melakukan operasi penyalinan massal menggunakan jenis data asli dari database untuk data nonkarakter, dan karakter Unicode untuk jenis data karakter. Opsi ini menawarkan alternatif performa yang lebih tinggi untuk -w opsi , dan dimaksudkan untuk mentransfer data dari satu instans SQL Server ke instans lain menggunakan file data. Tidak ada permintaan untuk setiap bidang. Gunakan opsi ini saat Anda mentransfer data yang berisi karakter ANSI yang diperluas dan Anda ingin mengoptimalkan performa mode asli.
Untuk informasi selengkapnya, lihat Menggunakan Format Asli Unicode untuk Mengimpor atau Mengekspor Data (SQL Server).
Jika Anda mengekspor lalu mengimpor data ke skema tabel yang sama dengan menggunakan bcp, Anda mungkin melihat peringatan pemangkasan jika ada kolom karakter non-Unicode panjang tetap (misalnya, -N).
Anda dapat mengabaikan peringatan. Salah satu cara untuk mengatasi peringatan ini adalah dengan menggunakan -n alih-alih -N.
-w
Melakukan operasi penyalinan massal dengan menggunakan karakter Unicode. Opsi ini tidak memunculkan prompt untuk setiap bidang. Ini menggunakan nchar sebagai jenis penyimpanan, tidak ada awalan, \t (karakter tab) sebagai pemisah bidang, dan \n (karakter baris baru) sebagai terminator baris.
-w tidak kompatibel dengan -c.
Untuk informasi selengkapnya, lihat Menggunakan format karakter Unicode untuk mengimpor atau mengekspor data (SQL Server).
-z
Berlaku untuk: hanya bcp (ODBC), Linux, dan macOS. Windows tidak didukung.
Mengaktifkan dukungan jenis data vektor di utilitas bcp . Fitur ini saat ini dinonaktifkan secara default. Saat dinonaktifkan, data vektor diimpor atau diekspor sebagai string array float JSON. Ketika diaktifkan, dan saat menyambungkan ke SQL Server 2025 (17.x) dan versi yang lebih baru, data vektor diimpor atau diekspor dalam biner vektor asli.
Format file
-f format_file
Menentukan jalur lengkap file format. Arti dari opsi ini tergantung pada lingkungan tempat opsi digunakan, sebagai berikut:
Jika Anda menggunakan
-fdengan opsiformat, format_file yang ditentukan dibuat untuk tabel atau view yang ditentukan. Untuk membuat file format XML, serta tentukan opsi-x. Untuk informasi selengkapnya, lihat Membuat file format dengan bcp (SQL Server).Jika Anda menggunakan
-fdenganinopsi atauout, ini memerlukan file format yang ada.Note
Menggunakan file format dengan opsi
inatauoutbersifat opsional. Jika Anda tidak menentukan-fopsi dan tidak menentukan-n, ,-c,-watau-N, perintah meminta informasi format dan memungkinkan Anda menyimpan respons dalam file format. Nama file default adalahbcp.fmt.
Jika format_file dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -f dan nilai format_file .
-x
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Gunakan opsi ini dengan opsi format dan opsi -fformat_file. Ini menghasilkan file format berbasis XML alih-alih file format non-XML default. Opsi -x tidak berfungsi saat mengimpor atau mengekspor data. Ini menghasilkan kesalahan jika digunakan tanpa keduanya format dan -fformat_file.
Pengelompokan dan Kinerja
-a packet_size
Menentukan jumlah byte per paket jaringan yang dikirim dan diterima klien dari server. Atur opsi konfigurasi server ini dengan menggunakan SQL Server Management Studio atau prosedur tersimpan sistem sp_configure. Namun, Anda dapat mengambil alih opsi konfigurasi server secara individual dengan menggunakan opsi ini.
packet_size bisa dari 4.096 byte hingga 65.535 byte. Defaultnya adalah 4096.
Meningkatkan ukuran paket dapat meningkatkan performa operasi penyalinan massal. Jika Anda meminta paket yang lebih besar tetapi server tidak dapat memberikannya, defaultnya digunakan. Statistik performa yang dihasilkan utilitas bcp menunjukkan ukuran paket yang digunakan.
-b batch_size
Menentukan jumlah baris per setiap batch data yang diimpor. Setiap batch diimpor dan dicatat menjadi transaksi terpisah yang mengimpor seluruh batch sebelum dikonfirmasi. Secara default, bcp mengimpor semua baris dalam file data sebagai satu batch. Untuk mendistribusikan baris di antara beberapa batch, tentukan batch_size yang lebih kecil dari jumlah baris dalam file data. Jika transaksi untuk batch apa pun gagal, hanya penyisipan dari batch saat ini yang digulung balik. Batch yang sudah diimpor oleh transaksi yang telah dilakukan tidak terpengaruh oleh kegagalan berikutnya.
Petunjuk -b dan petunjuk -h "ROWS_PER_BATCH=<bb>" saling eksklusif. Gunakan -b saat Anda ingin bcp mengontrol batching secara eksplisit, atau gunakan ROWS_PER_BATCH untuk mengisyaratkan pengoptimal server saat mengirim data sebagai satu transaksi.
-h "petunjuk (hints) [, ... n]"
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Menentukan petunjuk atau petunjuk yang akan digunakan selama impor data secara massal ke dalam tabel atau tampilan.
ORDER (kolom [ASC | DESC] [, ...n])
Urutan pengurutan data dalam file data. Performa impor massal meningkat jika data yang diimpor diurutkan sesuai dengan indeks terkluster pada tabel, jika ada. Jika file data diurutkan dalam urutan yang berbeda, yaitu, selain urutan kunci indeks berkluster, atau jika tidak ada indeks berkluster pada tabel, klausa
ORDERdiabaikan. Nama kolom yang Anda berikan harus berupa nama kolom yang valid dalam tabel tujuan. Secara default, bcp mengasumsikan file data tidak diurutkan. Untuk impor massal yang dioptimalkan, SQL Server juga memvalidasi bahwa data yang diimpor diurutkan.ROWS_PER_BATCH = bb
Jumlah baris data per batch (dengan nama bb). Digunakan saat Anda tidak menentukan
-b, yang mengakibatkan seluruh file data dikirim ke server sebagai satu transaksi. Server mengoptimalkan beban massal sesuai dengan nilai bb. Secara default,ROWS_PER_BATCHtidak diketahui.KILOBYTES_PER_BATCH = cc
Perkiraan jumlah kilobyte data per batch (dalam cc). Secara default,
KILOBYTES_PER_BATCHtidak diketahui.TABLOCK
Menentukan bahwa kunci tingkat tabel pembaruan massal diperoleh selama operasi beban massal; jika tidak, kunci tingkat baris diperoleh. Petunjuk ini secara signifikan meningkatkan performa karena memegang kunci selama operasi salin massal mengurangi persaingan kunci pada tabel. Anda dapat memuat tabel secara bersamaan dari beberapa klien jika tabel tidak memiliki indeks dan
TABLOCKditentukan. Secara bawaan, opsi tabeltable lock on bulkloadmenentukan perilaku penguncian. Untuk informasi selengkapnya, lihat sp_tableoption.Note
Jika tabel target adalah indeks penyimpan kolom berkluster, hint
TABLOCKtidak diperlukan untuk dimuat oleh beberapa klien bersamaan karena setiap utas bersamaan diberikan grup baris terpisah dalam indeks dan memuat data ke dalamnya. Untuk informasi selengkapnya, lihat Indeks penyimpan kolom: gambaran umum.CHECK_CONSTRAINTS
Menentukan bahwa semua batasan pada tabel target atau tampilan harus diperiksa selama operasi impor massal. Tanpa petunjuk
CHECK_CONSTRAINTS, batasanCHECKdanFOREIGN KEYapa pun diabaikan, dan setelah operasi batasan pada tabel ditandai sebagai tidak tepercaya.Note
batasan
UNIQUE,PRIMARY KEY, danNOT NULLselalu diberlakukan.Pada titik tertentu, Anda perlu memeriksa batasan pada seluruh tabel. Jika tabel tidak kosong sebelum operasi impor massal, biaya untuk memvalidasi ulang batasan dapat melebihi biaya penerapan batasan
CHECKke data tambahan. Oleh karena itu, Anda biasanya dapat mengaktifkan pemeriksaan batasan selama impor massal inkremental.Situasi di mana Anda mungkin ingin batasan dinonaktifkan (perilaku default) adalah jika data input berisi baris yang melanggar batasan. Dengan menonaktifkan
CHECKbatasan, Anda dapat mengimpor data lalu menggunakan pernyataan Transact-SQL untuk menghapus data yang tidak valid.Note
Sakelar
-mmax_errors tidak berlaku untuk pemeriksaan batasan.FIRE_TRIGGERS
Saat Anda menentukan opsi ini dengan dalam argumen, pemicu penyisipan apa pun yang ditentukan pada tabel tujuan dijalankan selama operasi salin massal. Jika Anda tidak menentukan
FIRE_TRIGGERS, tidak ada pemicu insert yang dijalankan.FIRE_TRIGGERSdiabaikan untuk argumenout,queryout, danformat.
-m max_errors
Menentukan jumlah maksimum kesalahan sintaks yang dapat terjadi sebelum operasi bcp dibatalkan. Kesalahan sintaks menyiratkan kesalahan konversi data ke jenis data target. Total max_errors mengecualikan kesalahan apa pun yang hanya dapat dideteksi server, seperti pelanggaran batasan.
Baris yang tidak dapat disalin utilitas bcp diabaikan dan dihitung sebagai satu kesalahan. Jika Anda tidak menyertakan opsi ini, nilai defaultnya adalah 10.
Note
Opsi -m ini tidak berlaku saat mengonversi jenis data uang atau bigint .
-F baris_pertama
Menentukan jumlah baris pertama yang akan diekspor dari tabel atau mengimpor dari file data. Parameter ini memerlukan nilai yang lebih besar dari (>) 0 tetapi kurang dari (<) atau sama dengan jumlah total baris. Jika Anda tidak menentukan parameter ini, defaultnya adalah baris pertama file.
first_row dapat berupa bilangan bulat positif dengan nilai hingga 2^63-1.
-F
first_row menggunakan penomoran berbasis 1.
-L baris_terakhir
Menentukan jumlah baris terakhir yang akan diekspor dari tabel atau mengimpor dari file data. Parameter ini memerlukan nilai yang lebih besar dari (>) 0 tetapi kurang dari (<) atau sama dengan jumlah baris terakhir. Jika Anda tidak menentukan parameter ini, defaultnya adalah baris terakhir file.
last_row dapat berupa bilangan bulat positif dengan nilai hingga 2^63-1.
-r row_term
Menentukan terminator baris. Standarnya adalah \n (karakter baris baru). Gunakan parameter ini untuk menggantikan terminator baris default. Untuk informasi selengkapnya, lihat Menentukan terminator bidang dan baris (SQL Server).
Jika Anda menentukan terminator baris dalam notasi heksadesimal dalam perintah bcp , nilai dipotong pada 0x00. Misalnya, jika Anda menentukan 0x410041, 0x41 digunakan.
Jika row_term dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -r dan nilai row_term .
-t field_term
Menentukan pemisah bidang. Defaultnya adalah \t (karakter tab). Gunakan parameter ini untuk menggantikan pemisah bidang default. Untuk informasi selengkapnya, lihat Menentukan terminator bidang dan baris (SQL Server).
Jika Anda menentukan terminator bidang dalam notasi heksadesimal dalam perintah bcp, nilainya dipangkas pada 0x00. Misalnya, jika Anda menentukan 0x410041, 0x41 digunakan.
Jika field_term dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -t dan nilai field_term .
Penanganan nilai
-k
Menentukan bahwa kolom kosong menyimpan nilai null selama operasi, daripada menyisipkan nilai default apa pun untuk kolom. Untuk informasi selengkapnya, lihat Menyimpan nilai null atau default selama impor massal (SQL Server).
-E
Menentukan bahwa operasi menggunakan nilai identitas dalam file data yang diimpor untuk kolom identitas. Jika Anda tidak menentukan -E, SQL Server mengabaikan nilai identitas untuk kolom ini dalam file data yang diimpor dan secara otomatis menetapkan nilai unik berdasarkan nilai benih dan kenaikan yang ditentukan selama pembuatan tabel. Untuk informasi selengkapnya, lihat DBCC CHECKIDENT.
Jika file data tidak berisi nilai untuk kolom identitas dalam tabel atau tampilan, gunakan file format untuk menentukan bahwa kolom identitas dalam tabel atau tampilan harus dilewati saat mengimpor data. SQL Server secara otomatis menetapkan nilai unik untuk kolom tersebut.
Opsi -E ini memiliki persyaratan izin khusus. Untuk informasi selengkapnya, lihat "Komentar" nanti di artikel ini.
I/O file dan pengelogan
-i input_file
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Menentukan nama file respons. File ini berisi respons terhadap pertanyaan pada prompt perintah untuk setiap bidang data saat Anda melakukan operasi penyalinan massal menggunakan mode interaktif (-n, -c, -w, atau -N tidak ditentukan).
Jika input_file dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -i dan nilai input_file .
-o output_file
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Menentukan nama file yang menerima output yang dialihkan dari prompt perintah.
Jika output_file dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -o dan nilai output_file .
-e err_file
Menentukan jalur lengkap file kesalahan yang digunakan untuk menyimpan baris apa pun yang tidak dapat ditransfer utilitas bcp dari file ke database. Pesan kesalahan dari perintah bcp masuk ke stasiun kerja pengguna. Jika Anda tidak menggunakan opsi ini, file kesalahan tidak dibuat.
Jika err_file dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -e dan nilai err_file .
Kompatibilitas dan penerapan versi
-V { 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150 | 160 | 170 }
Berlaku untuk: Hanya Windows. Tidak didukung di Linux dan macOS.
Melakukan operasi penyalinan massal menggunakan jenis data dari versi SQL Server yang lebih lama. Opsi ini tidak meminta setiap bidang; ini menggunakan nilai default.
-
80= SQL Server 2000 (8.x) -
90= SQL Server 2005 (9.x) -
100= SQL Server 2008 (10.0.x) dan 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) -
170= SQL Server 2025 (17.x)
Misalnya, untuk menghasilkan data untuk jenis yang tidak didukung SQL Server 2000 (8.x), tetapi diperkenalkan di versi yang lebih baru, gunakan opsi .-V80
Untuk informasi selengkapnya, lihat Mengimpor data format asli dan karakter dari versi SQL Server yang lebih lama.
Opsi lain-lain
-R
Menentukan bahwa utilitas bcp menyalin data mata uang, tanggal, dan waktu secara massal ke SQL Server menggunakan format regional yang ditentukan untuk pengaturan lokal komputer klien. Secara default, bcp mengabaikan pengaturan regional.
-v
Melaporkan nomor versi utilitas bcp dan hak cipta.
Komentar
Utilitas bcp mendukung file data asli yang kompatibel dengan semua versi SQL Server yang didukung.
Utilitas bcp hanya menampilkan 512 byte pertama dari pesan kesalahan.
Permissions
Operasi bcp out memerlukan izin SELECT pada tabel sumber.
Operasi bcp in memerlukan minimal izin SELECT serta INSERT pada tabel target. Selain itu, izin ALTER TABLE diperlukan jika salah satu kondisi berikut ini benar:
Batasan ada dan petunjuk
CHECK_CONSTRAINTStidak ditentukan.Menonaktifkan batasan adalah perilaku default. Untuk mengaktifkan batasan secara eksplisit, gunakan opsi
-hdengan petunjukCHECK_CONSTRAINTS.Pemicu sudah ada dan petunjuk
FIRE_TRIGGERStidak ditentukan.Secara default, pemicu tidak diaktifkan. Untuk mengaktifkan pemicu secara eksplisit, gunakan opsi
-hdengan petunjukFIRE_TRIGGERS.Anda menggunakan
-Eopsi untuk mengimpor nilai identitas dari file data.
Konten terkait
- Menyiapkan data untuk ekspor atau impor massal
- PENYISIPAN MASSAL (Transact-SQL)
- OPENROWSET (T-SQL)
- SET QUOTED_IDENTIFIER (Transact-SQL)
- sp_configure (T-SQL)
- sp_tableoption (T-SQL)
- Memformat file untuk mengimpor atau mengekspor data (SQL Server)
Dapatkan bantuan
- Ide tentang SQL: Apakah Anda memiliki saran untuk meningkatkan SQL Server?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (tag sql-server): Ajukan pertanyaan SQL Server
- Stack Overflow (tag sql-server): Jawaban atas pertanyaan pengembangan SQL
- Syarat dan Informasi Lisensi Microsoft SQL Server
- Opsi dukungan untuk pengguna bisnis
- Bantuan dan umpan balik SQL Server tambahan
Berkontribusi pada dokumentasi SQL
Tahukah Anda bahwa Anda dapat mengedit konten SQL sendiri? Jika Anda melakukannya, Anda tidak hanya membantu meningkatkan dokumentasi kami, tetapi Anda juga dikreditkan sebagai kontributor ke halaman.
Untuk informasi selengkapnya, lihat Mengedit dokumentasi Microsoft Learn.