utilitas bcp
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Untuk menggunakan bcp di Linux, lihat Menginstal sqlcmd dan bcp di Linux.
Untuk informasi mendetail tentang menggunakan bcp dengan Azure Synapse Analytics, lihat Memuat data dengan bcp.
Utilitasrogram b ulk copy p(bcp) menyalin data secara massal antara instans Microsoft SQL Server dan file data dalam format yang ditentukan pengguna. Utilitas bcp dapat digunakan untuk mengimpor sejumlah besar baris baru ke tabel SQL Server atau untuk mengekspor data dari tabel ke dalam file data. Kecuali ketika digunakan dengan opsi kueri , 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 konvensi sintaksis yang digunakan untuk sintaks bcp , lihat Konvensi Sintaks Transact-SQL (Transact-SQL).
Catatan
Jika Anda menggunakan bcp untuk mencadangkan data Anda, buat file format untuk merekam format data. File data bcptidak menyertakan informasi skema atau format apa pun, jadi jika tabel atau tampilan dihilangkan dan Anda tidak memiliki file format, Anda mungkin tidak dapat mengimpor data.
Unduh Utilitas bcp versi terbaru
Unduh Utilitas Baris Perintah Microsoft 15 untuk SQL Server (x64)
Unduh Utilitas Baris Perintah Microsoft 15 untuk SQL Server (x86)
Alat baris perintah adalah Ketersediaan Umum (GA), namun sedang dirilis dengan paket alat penginstal untuk SQL Server 2019 (15.x).
Informasi Versi
Nomor rilis: 15.0.2
Nomor build: 15.0.2000.5
Tanggal rilis: 11 September 2020
Versi baru SQLCMD mendukung autentikasi Microsoft Azure AD, termasuk dukungan Autentikasi Multifaktor (MFA) untuk SQL Database, Azure Synapse Analytics, dan fitur Always Encrypted. BCP baru mendukung autentikasi Azure Active Directory, termasuk dukungan Autentikasi Multifaktor (MFA) untuk SQL Database dan Azure Synapse Analytics.
Persyaratan Sistem
Windows 11, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
Komponen ini memerlukan Windows Installer 4.5 dan Microsoft ODBC Driver 17 untuk SQL Server.
Untuk memeriksa perintah eksekusi bcp /v versi BCP dan mengonfirmasi bahwa 15.0.2000.5 atau yang lebih tinggi sedang digunakan.
| Sintaks |
|---|
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 Azure Active Directory 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] [-v] [-V (80 | 90 | 100 | 110 | 120 | 130 ) ] [-w] [-x] |
Argumen
data_file
Adalah jalur lengkap file data. Ketika data diimpor secara massal ke SQL Server, file data berisi data yang akan disalin ke dalam tabel atau tampilan yang ditentukan. Saat data diekspor 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 maksimal 2^63 - 1 baris.
database_name
Adalah nama database tempat tabel atau tampilan yang ditentukan berada. Jika tidak ditentukan, ini adalah database default untuk pengguna.
Anda juga dapat secara eksplisit menentukan nama database dengan -d.
didata_file | keluardata_file | kueridata_file | format nul
Menentukan arah salinan massal, sebagai berikut:
In menyalin dari file ke dalam tabel atau tampilan database.
Out ekspres menyalin dari tabel database atau tampilan ke file. Jika Anda menentukan file yang ada, file akan ditimpa. Saat mengekstrak data, utilitas bcp mewakili string kosong sebagai string null dan string null sebagai string kosong.
kueri habis menyalin dari kueri dan harus ditentukan hanya saat menyalin data secara massal dari kueri.
Format membuat file format berdasarkan opsi yang ditentukan (-n, -c, -w, atau -N) dan tabel atau pemisah 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 opsi -f ; membuat file format XML, juga memerlukan opsi -x . Untuk informasi selengkapnya, lihat Membuat File Format (SQL Server). Anda harus menentukan nul sebagai nilai (format nul).
Skema
Adalah nama pemilik tabel atau tampilan. skema bersifat opsional jika pengguna yang melakukan operasi memiliki tabel atau tampilan yang ditentukan. Jika skema tidak ditentukan dan pengguna yang melakukan operasi tidak memiliki tabel atau tampilan yang ditentukan, SQL Server mengembalikan pesan kesalahan, dan operasi dibatalkan.
"query" Adalah kueri Transact-SQL yang mengembalikan tataan hasil. Jika kueri mengembalikan beberapa tataan hasil, hanya kumpulan hasil pertama yang disalin ke file data; tataan hasil berikutnya diabaikan. Gunakan tanda kutip ganda di sekitar kueri dan tanda kutip tunggal di sekitar apa pun yang disematkan dalam kueri. kueri juga harus ditentukan saat 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 durasi 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.
table_name
Adalah nama tabel tujuan saat mengimpor data ke SQL Server (di), dan tabel sumber saat mengekspor data dari SQL Server (keluar).
view_name
Adalah nama tampilan tujuan saat menyalin data ke SQL Server (di), dan tampilan sumber saat menyalin data dari SQL Server (keluar). Hanya tampilan di mana semua kolom merujuk ke tabel yang sama yang dapat digunakan sebagai tampilan tujuan. Untuk informasi selengkapnya tentang pembatasan untuk menyalin data ke dalam tampilan, lihat INSERT (Transact-SQL).
-a packet_size
Menentukan jumlah byte, per paket jaringan, yang dikirim ke dan dari server. Opsi konfigurasi server dapat diatur dengan menggunakan SQL Server Management Studio (atau prosedur tersimpan sistem sp_configure ). Namun, opsi konfigurasi server dapat ditimpa secara individual dengan menggunakan opsi ini. packet_size bisa dari 4096 byte hingga 65535 byte; defaultnya adalah 4096.
Peningkatan ukuran paket dapat meningkatkan performa operasi penyalinan massal. Jika paket yang lebih besar diminta tetapi tidak dapat diberikan, default akan digunakan. Statistik performa yang dihasilkan oleh utilitas bcp menunjukkan ukuran paket yang digunakan.
-bbatch_size
Menentukan jumlah baris per batch data yang diimpor. Setiap batch diimpor dan dicatat sebagai transaksi terpisah yang mengimpor seluruh batch sebelum diterapkan. Secara default, semua baris dalam file data diimpor 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 dilakukan tidak terpengaruh oleh kegagalan nanti.
Jangan gunakan opsi ini bersama dengan opsi -h "ROWS_PER_BATCH =bb" .
-c
Melakukan operasi menggunakan jenis data karakter. Opsi ini tidak meminta setiap bidang; ini menggunakan karakter sebagai jenis penyimpanan, tanpa awalan dan dengan \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).
-C { ACP | OEM | RAW | code_page }
Menentukan halaman kode data dalam file data. code_page hanya relevan jika data berisi kolom karakter, varchar, atau teks dengan nilai karakter yang lebih besar dari 127 atau kurang dari 32.
Catatan
Sebaiknya tentukan nama kolase untuk setiap kolom dalam file format, kecuali jika Anda ingin opsi 65001 memiliki prioritas atas spesifikasi halaman kolase/kode.
| Nilai halaman kode | Deskripsi |
|---|---|
| ACP | ANSI/Microsoft Windows (ISO 1252). |
| OEM | Halaman kode default yang digunakan oleh klien. Ini adalah halaman kode default yang digunakan jika -C tidak ditentukan. |
| RAW | Tidak ada konversi dari satu halaman kode ke halaman lain yang terjadi. Ini adalah opsi tercepat karena tidak ada konversi yang terjadi. |
| code_page | Nomor halaman kode tertentu; misalnya, 850. Versi sebelum versi 13 (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. |
-ddatabase_name
Menentukan database yang akan disambungkan. Secara default, bcp.exe tersambung ke database default pengguna. Jika -d database_name dan tiga nama bagian (database_name.schema.table, diteruskan sebagai parameter pertama ke bcp.exe) ditentukan, kesalahan akan 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.
-D
Menyebabkan nilai yang diteruskan ke bcp-S opsi ditafsirkan sebagai nama sumber data (DSN). DSN dapat digunakan untuk menyematkan opsi driver untuk menyederhanakan baris perintah, memberlakukan opsi driver yang tidak dapat diakses dari baris perintah seperti MultiSubnetFailover, atau untuk membantu melindungi kredensial sensitif agar tidak dapat ditemukan sebagai argumen baris perintah. Untuk informasi selengkapnya, lihat Dukungan DSN di sqlcmd dan bcp di Menyambungkan dengan sqlcmd.
-eerr_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 opsi ini tidak digunakan, file kesalahan tidak dibuat.
Jika err_file dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -e dan nilai err_file .
Menentukan bahwa nilai identitas atau nilai dalam file data yang diimpor akan digunakan untuk kolom identitas. Jika -E tidak diberikan, nilai identitas untuk kolom ini dalam file data yang sedang diimpor diabaikan, dan SQL Server 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.
Opsi -E memiliki persyaratan izin khusus. Untuk informasi selengkapnya, lihat "Keterangan" nanti dalam topik ini.
-fformat_file
Menentukan jalur lengkap file format. Arti dari opsi ini tergantung pada lingkungan tempatnya digunakan, sebagai berikut:
Jika -f digunakan dengan opsi format , format_file yang ditentukan dibuat untuk tabel atau tampilan yang ditentukan. Untuk membuat file format XML, tentukan juga opsi -x . Untuk informasi selengkapnya, lihat Membuat File Format (SQL Server).
Jika digunakan dengan opsi masuk atau keluar , -f memerlukan file format yang ada.
Catatan
Menggunakan file format di dengan opsi masuk atau keluar bersifat opsional. Dengan tidak adanya opsi -f , jika -n, -c, -w, atau -N tidak ditentukan, perintah meminta informasi format dan memungkinkan Anda menyimpan respons Anda dalam file format (yang nama file defaultnya adalah Bcp.fmt).
Jika format_file dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -f dan nilai format_file .
-Ffirst_row
Menentukan jumlah baris pertama yang akan diekspor dari tabel atau impor dari file data. Parameter ini memerlukan nilai yang lebih besar dari (>) 0 tetapi kurang dari (<) atau sama dengan (=) baris jumlah total. Dengan tidak adanya parameter ini, defaultnya adalah baris pertama file.
first_row bisa berupa bilangan bulat positif dengan nilai hingga 2^63-1. - Ffirst_row berbasis 1.
Sakelar ini digunakan oleh klien saat menyambungkan ke Azure SQL Database atau Azure Synapse Analytics untuk menentukan bahwa pengguna diautentikasi menggunakan autentikasi Azure Active Directory. Sakelar -G memerlukan versi 14.0.3008.27 atau yang lebih baru. Untuk menentukan versi Anda, jalankan bcp -v. Untuk informasi selengkapnya, lihat Menggunakan Autentikasi Azure Active Directory untuk autentikasi dengan SQL Database atau Azure Synapse Analytics.
Penting
Opsi -G hanya berlaku untuk Azure SQL Database dan Azure Synapse Analytics. Autentikasi Interaktif AAD saat ini tidak didukung di Linux atau macOS. Autentikasi Terintegrasi AAD memerlukan Microsoft ODBC Driver 17 untuk SQL Server versi 17.6.1 atau yang lebih tinggi dan lingkungan Kerberos yang dikonfigurasi dengan benar.
Tip
Untuk memeriksa apakah versi bcp Anda menyertakan dukungan untuk Azure Active Directory Authentication (AAD) jenis bcp -- (tanda hubung><> spasi><bcp<) dan verifikasi bahwa Anda melihat -G dalam daftar argumen yang tersedia.
Nama Pengguna dan Kata Sandi Azure Active Directory:
Saat Anda ingin menggunakan nama pengguna dan kata sandi Azure Active Directory, Anda dapat memberikan opsi -G dan juga menggunakan nama pengguna dan kata sandi dengan menyediakan opsi -U dan -P .
Contoh berikut mengekspor data menggunakan Nama Pengguna dan Kata Sandi Azure ACTIVE Directory di mana pengguna dan kata sandi adalah kredensial AAD. Contoh mengekspor tabel
bcptestdari databasetestdbdari serveraadserver.database.windows.netAzure dan menyimpan data dalam filec:\last\data1.dat:bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxxContoh berikut mengimpor data menggunakan Nama Pengguna dan Kata Sandi Azure ACTIVE Directory di mana pengguna dan kata sandi adalah kredensial AAD. Contoh mengimpor data dari file
c:\last\data1.datke dalam tabelbcptestuntuk databasetestdbdi serveraadserver.database.windows.netAzure menggunakan Pengguna/Kata Sandi Azure ACTIVE Directory:bcp bcptest in "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxxTerintegrasi Azure Active Directory
Untuk autentikasi Terintegrasi Azure Active Directory, berikan opsi -G tanpa nama pengguna atau kata sandi. Konfigurasi ini mengasumsikan bahwa akun pengguna Windows saat ini (akun yang dijalankan perintah bcp) digabungkan dengan Azure ACTIVE Directory:
Contoh berikut mengekspor data menggunakan akun Azure AD-Integrated. Contoh mengekspor tabel
bcptestdari databasetestdbmenggunakan Azure ACTIVE Directory Terintegrasi dari serveraadserver.database.windows.netAzure dan menyimpan data dalam filec:\last\data2.dat:bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -tContoh berikut mengimpor data menggunakan azure AD-Integrated auth. Contoh mengimpor data dari file
c:\last\data2.txtke dalam tabelbcptestuntuk databasetestdbdi serveraadserver.database.windows.netAzure menggunakan autentikasi Azure AD Integrated:bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -tInteraktif Azure Active Directory
Autentikasi Interaktif Microsoft Azure AD untuk Azure SQL Database dan Azure Synapse Analytics, memungkinkan Anda menggunakan metode interaktif yang mendukung autentikasi multifaktor. Untuk informasi selengkapnya, lihat Autentikasi Interaktif Direktori Aktif.
Interaktif Azure Active Directory memerlukan versi bcp15.0.1000.34 atau yang lebih baru serta ODBC versi 17.2 atau yang lebih baru.
Untuk mengaktifkan autentikasi interaktif, berikan opsi -G dengan nama pengguna (-U) saja, tanpa kata sandi.
Contoh berikut mengekspor data menggunakan mode interaktif Microsoft Azure AD yang menunjukkan nama pengguna di mana pengguna mewakili akun AAD. Ini adalah contoh yang sama yang digunakan di bagian sebelumnya: Nama Pengguna dan Kata Sandi Azure Active Directory.
Mode interaktif mengharuskan kata sandi dimasukkan secara manual, atau untuk akun dengan autentikasi multifaktor diaktifkan, selesaikan metode autentikasi MFA yang dikonfigurasi.
bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.comJika pengguna Azure ACTIVE Directory adalah domain federasi yang menggunakan akun Windows, nama pengguna yang diperlukan di baris perintah, berisi akun domainnya (misalnya, joe@contoso.com lihat di bawah):
bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U joe@contoso.comJika pengguna tamu ada di Azure AD tertentu dan merupakan bagian dari grup yang ada di SQL Database yang memiliki izin database untuk menjalankan perintah bcp, alias pengguna tamu mereka digunakan (misalnya, keith0@adventureworks.com).
-h"load hints[ ,... n] " Menentukan petunjuk atau petunjuk yang akan digunakan selama impor data secara massal ke dalam tabel atau tampilan.
ORDER(column[ASC | DESC] [,... n])
Urutan pengurutan data dalam file data. Performa impor massal ditingkatkan jika data yang diimpor diurutkan sesuai dengan indeks berkluster pada tabel, jika ada. Jika file data diurutkan dalam urutan yang berbeda, itu selain urutan kunci indeks berkluster, atau jika tidak ada indeks berkluster pada tabel, klausa ORDER diabaikan. Nama kolom yang disediakan 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 (sebagai bb). Digunakan ketika -b tidak ditentukan, sehingga seluruh file data dikirim ke server sebagai satu transaksi. Server mengoptimalkan beban massal sesuai dengan nilai bb. Secara default, ROWS_PER_BATCH tidak diketahui.= KILOBYTES_PER_BATCH Cc
Perkiraan jumlah kilobyte data per batch (sebagai cc). Secara default, KILOBYTES_PER_BATCH tidak diketahui.TABLOCK
Menentukan bahwa kunci tingkat tabel pembaruan massal diperoleh selama durasi operasi beban massal; jika tidak, kunci tingkat baris diperoleh. Petunjuk ini secara signifikan meningkatkan performa karena menahan kunci selama durasi operasi penyalinan massal mengurangi ketidakcocokan kunci pada tabel. Tabel dapat dimuat secara bersamaan oleh beberapa klien jika tabel tidak memiliki indeks dan TABLOCK ditentukan. Secara default, perilaku penguncian ditentukan oleh kunci tabel opsi tabel pada beban massal.Catatan
Jika tabel target adalah indeks penyimpan kolom berkluster, petunjuk TABLOCK tidak diperlukan untuk memuat oleh beberapa klien bersamaan karena setiap utas bersamaan diberi grup baris terpisah dalam indeks dan memuat data ke dalamnya. Silakan lihat topik konseptual indeks penyimpan kolom untuk detailnya,
CHECK_CONSTRAINTS
Menentukan bahwa semua batasan pada tabel target atau tampilan harus diperiksa selama operasi impor massal. Tanpa petunjuk CHECK_CONSTRAINTS, batasan CHECK, dan FOREIGN KEY apa pun diabaikan, dan setelah operasi, batasan pada tabel ditandai sebagai tidak tepercaya.Catatan
Batasan UNIQUE, PRIMARY KEY, dan NOT NULL selalu diberlakukan.
Pada titik tertentu, Anda harus memeriksa batasan pada seluruh tabel. Jika tabel tidak kosong sebelum operasi impor massal, biaya validasi ulang batasan dapat melebihi biaya penerapan batasan CHECK ke data bertahap. Oleh karena itu, kami menyarankan agar Anda biasanya 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 batasan CHECK dinonaktifkan, Anda dapat mengimpor data lalu menggunakan pernyataan Transact-SQL untuk menghapus data yang tidak valid.
Catatan
bcp sekarang memberlakukan validasi data dan pemeriksaan data yang dapat menyebabkan skrip gagal jika dijalankan pada data yang tidak valid dalam file data.
Catatan
Sakelar -mmax_errors tidak berlaku untuk pemeriksaan batasan.
FIRE_TRIGGERS
Ditentukan dengan argumen in , setiap pemicu sisipan yang ditentukan pada tabel tujuan akan berjalan selama operasi penyalinan massal. Jika FIRE_TRIGGERS tidak ditentukan, tidak ada pemicu sisipan yang akan berjalan. FIRE_TRIGGERS diabaikan untuk argumen keluar, kueri, dan format .
-iinput_file
Menentukan nama file respons, yang berisi respons terhadap pertanyaan perintah untuk setiap bidang data ketika salinan massal sedang dilakukan 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 .
-k
Menentukan bahwa kolom kosong harus mempertahankan nilai null selama operasi, daripada memiliki nilai default untuk kolom yang disisipkan. Untuk informasi selengkapnya, lihat Menyimpan Null atau Menggunakan Nilai Default Selama Impor Massal (SQL Server).
-Kapplication_intent
Menyatakan jenis beban kerja aplikasi saat menyambungkan ke server. Satu-satunya nilai yang dimungkinkan adalah ReadOnly. Jika -K tidak ditentukan, utilitas bcp tidak akan mendukung konektivitas ke replika sekunder dalam grup ketersediaan AlwaysOn. Untuk informasi selengkapnya, lihat Sekunder Aktif: Replika Sekunder yang Dapat Dibaca (Grup Ketersediaan AlwaysOn).
- Akulogin_timeout
Menentukan batas waktu masuk. Opsi -l menentukan jumlah detik sebelum waktu masuk ke SQL Server habis ketika 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 diberikan bukan numerik atau tidak termasuk dalam rentang tersebut, bcp menghasilkan pesan kesalahan. Nilai 0 menentukan batas waktu tak terbatas.
-Llast_row
Menentukan jumlah baris terakhir yang akan diekspor dari tabel atau impor dari file data. Parameter ini memerlukan nilai yang lebih besar dari (>) 0 tetapi kurang dari (<) atau sama dengan (=) jumlah baris terakhir. Dengan tidak adanya parameter ini, defaultnya adalah baris terakhir dari file.
last_row bisa berupa bilangan bulat positif dengan nilai hingga 2^63-1.
-mmax_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 yang hanya dapat dideteksi di server, seperti pelanggaran batasan.
Baris yang tidak dapat disalin oleh utilitas bcp diabaikan dan dihitung sebagai satu kesalahan. Jika opsi ini tidak disertakan, defaultnya adalah 10.
Catatan
Opsi -m juga tidak berlaku untuk mengonversi jenis uang atau bigint data.
-n
Melakukan operasi salin massal menggunakan jenis data asli (database) data. Opsi ini tidak meminta setiap bidang; ini menggunakan nilai asli.
Untuk informasi selengkapnya, lihat Menggunakan Format Asli untuk Mengimpor atau Mengekspor Data (SQL Server).
-N
Melakukan operasi salin massal menggunakan jenis data asli (database) data untuk data noncharacter, dan karakter Unicode untuk data karakter. Opsi ini menawarkan alternatif performa yang lebih tinggi untuk opsi -w , dan dimaksudkan untuk mentransfer data dari satu instans SQL Server ke instans lain menggunakan file data. Ini tidak meminta setiap bidang. Gunakan opsi ini saat Anda mentransfer data yang berisi karakter yang diperluas ANSI dan Anda ingin memanfaatkan 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.exe dengan -N, Anda mungkin melihat peringatan pemotongan jika ada kolom karakter non-Unicode panjang tetap (misalnya, karakter(10)).
Peringatan dapat diabaikan. Salah satu cara untuk mengatasi peringatan ini adalah dengan menggunakan -n alih-alih-N.
-ooutput_file
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 .
-Pkata sandi
Menentukan kata sandi untuk ID masuk. Jika opsi ini tidak digunakan, perintah bcp akan meminta kata sandi. Jika opsi ini digunakan 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 menutupi kata sandi Anda, jangan tentukan opsi -P bersama dengan opsi -U . Sebagai gantinya, setelah menentukan bcp bersama dengan opsi -U dan sakelar lainnya (jangan tentukan -P), tekan ENTER, dan perintah akan meminta kata sandi. Metode ini memastikan bahwa kata sandi Anda akan ditutupi saat dimasukkan.
Jika kata sandi dimulai dengan tanda hubung (-) atau garis miring (/), jangan tambahkan spasi antara -P dan nilai kata sandi .
-q
Menjalankan pernyataan SET QUOTED_IDENTIFIERS 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 Keterangan, nanti dalam topik ini.
-rrow_term
Menentukan terminator baris. Defaultnya adalah \n (karakter baris baru). Gunakan parameter ini untuk mengambil alih 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.exe, nilai akan dipotok pada 0x00. Misalnya, jika Anda menentukan 0x410041, 0x41 akan digunakan.
Jika row_term dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -r dan nilai row_term .
-R
Menentukan bahwa data mata uang, tanggal, dan waktu disalin secara massal ke SQL Server menggunakan format regional yang ditentukan untuk pengaturan lokal komputer klien. Secara default, pengaturan regional diabaikan.
-Sserver_name [\instance_name] Menentukan instans SQL Server yang akan disambungkan. Jika tidak ada server yang ditentukan, utilitas bcp tersambung ke instans default SQL Server di komputer lokal. Opsi ini diperlukan ketika perintah bcp dijalankan 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 instance_name server_name\.
-tfield_term
Menentukan terminator bidang. Defaultnya adalah \t (karakter tab). Gunakan parameter ini untuk mengambil alih terminator bidang default. Untuk informasi selengkapnya, lihat Menentukan Terminator Bidang dan Baris (SQL Server).
Jika Anda menentukan terminator bidang dalam notasi heksadesimal dalam perintah bcp.exe, nilai akan dipotong pada 0x00. Misalnya, jika Anda menentukan 0x410041, 0x41 akan digunakan.
Jika field_term dimulai dengan tanda hubung (-) atau garis miring (/), jangan sertakan spasi antara -t dan nilai field_term .
-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 -T tidak ditentukan, Anda perlu menentukan -U dan -P agar berhasil masuk.
Penting
Ketika utilitas bcp terhubung ke SQL Server dengan koneksi tepercaya menggunakan keamanan terintegrasi, gunakan opsi -T (koneksi tepercaya) alih-alih kombinasi nama pengguna dan kata sandi . Saat utilitas bcp tersambung ke SQL Database atau Azure Synapse Analytics, menggunakan autentikasi Windows atau autentikasi Azure Active Directory tidak didukung. Gunakan opsi -U dan -P .
-Ulogin_id
Menentukan ID masuk yang digunakan untuk menyambungkan ke SQL Server.
Penting
Ketika utilitas bcp terhubung ke SQL Server dengan koneksi tepercaya menggunakan keamanan terintegrasi, gunakan opsi -T (koneksi tepercaya) alih-alih kombinasi nama pengguna dan kata sandi . Saat utilitas bcp tersambung ke SQL Database atau Azure Synapse Analytics, menggunakan autentikasi Windows atau autentikasi Azure Active Directory tidak didukung. Gunakan opsi -U dan -P .
-v
Melaporkan nomor versi utilitas bcp dan hak cipta.
-V (80 | 90 | 100 | 110 | 120 | 130)
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 dan SQL Server 2008 R2
110 = SQL Server 2012 (11.x)
120 = SQL Server 2014 (12.x)
130 = SQL Server 2016 (13.x)
Misalnya, untuk menghasilkan data untuk jenis yang tidak didukung oleh SQL Server 2000 (8.x), tetapi diperkenalkan di versi SQL Server yang lebih baru, gunakan opsi -V80.
Untuk informasi selengkapnya, lihat Mengimpor Data Format Asli dan Karakter dari Versi SQL Server Sebelumnya.
-w
Melakukan operasi salin massal menggunakan karakter Unicode. Opsi ini tidak meminta 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).
-x
Digunakan dengan format dan opsi -fformat_file , menghasilkan file format berbasis XML alih-alih file format non-XML default. -x tidak berfungsi saat mengimpor atau mengekspor data. Ini menghasilkan kesalahan jika digunakan tanpa format dan -fformat_file.
Keterangan
Klien bcp 13.0 diinstal saat Anda menginstal alat Microsoft SQL Server 2019 (15.x). Jika alat diinstal untuk beberapa versi SQL Server, tergantung pada urutan nilai variabel lingkungan PATH, Anda mungkin menggunakan klien bcp sebelumnya alih-alih klien bcp 13.0. Variabel lingkungan ini menentukan kumpulan direktori yang digunakan oleh Windows untuk mencari file yang dapat dieksekusi. Untuk menemukan versi mana yang Anda gunakan, jalankan perintah bcp /v atau bcp -v di Prompt Perintah Windows. Untuk informasi tentang cara mengatur jalur perintah dalam variabel lingkungan PATH, lihat Variabel Lingkungan atau cari Variabel Lingkungan di Bantuan Windows.
Untuk memastikan versi terbaru utilitas bcp berjalan, Anda perlu menghapus versi utilitas bcp yang lebih lama.
Untuk menentukan di mana semua versi utilitas bcp diinstal, ketik prompt perintah:
where bcp.exeUtilitas bcp juga dapat diunduh secara terpisah dari Paket Fitur Microsoft SQL Server 2016. Pilih salah satu
ENU\x64\MsSqlCmdLnUtils.msiatauENU\x86\MsSqlCmdLnUtils.msi.File format XML hanya didukung ketika alat SQL Server diinstal bersama dengan SQL Server Native Client.
Untuk informasi tentang tempat menemukan atau cara menjalankan utilitas bcp dan tentang konvensi sintaksis utilitas prompt perintah, lihat Referensi Utilitas Prompt Perintah (Mesin Database).
Untuk informasi tentang menyiapkan data untuk operasi impor atau ekspor massal, lihat Menyiapkan Data untuk Ekspor atau Impor Massal (SQL Server).
Untuk informasi tentang kapan operasi penyisipan baris yang dilakukan oleh impor massal dicatat dalam log transaksi, lihat Prasyarat untuk Pengelogan Minimal dalam Impor Massal.
Menggunakan karakter khusus tambahan
<Karakter , , >|, &, ^ adalah karakter shell perintah khusus, dan harus didahului oleh karakter escape (^) atau diapit dalam tanda kutip saat digunakan dalam String (misalnya, "Simbol StringContaining&"). Jika Anda menggunakan tanda kutip untuk mengapit string yang berisi salah satu karakter khusus, tanda kutip diatur sebagai bagian dari nilai variabel lingkungan.
Dukungan File Data Asli
Di SQL Server, utilitas bcp mendukung file data asli yang kompatibel dengan versi SQL Server yang dimulai dengan SQL Server 2000 (8.x) dan yang lebih baru.
Kolom Komputasi dan Kolom tanda waktu
Nilai dalam file data yang diimpor untuk kolom komputasi atau tanda waktu diabaikan, dan SQL Server secara otomatis menetapkan nilai. Jika file data tidak berisi nilai untuk kolom komputasi atau tanda waktu dalam tabel, gunakan file format untuk menentukan bahwa kolom komputasi atau tanda waktu dalam tabel harus dilewati saat mengimpor data; SQL Server secara otomatis menetapkan nilai untuk kolom.
Kolom komputasi dan tanda waktu disalin secara massal dari SQL Server ke file data seperti biasa.
Menentukan Pengidentifikasi yang Berisi Spasi atau Tanda Kutip
Pengidentifikasi SQL Server dapat menyertakan karakter seperti spasi yang disematkan dan tanda kutip. Pengidentifikasi tersebut harus diperlakukan sebagai berikut:
Saat Anda menentukan pengidentifikasi atau nama file yang menyertakan spasi atau tanda kutip pada prompt perintah, sertakan pengidentifikasi dalam tanda kutip ("").
Misalnya, perintah berikut
bcp outmembuat file data bernamaCurrency Types.dat:bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -cUntuk menentukan nama database yang berisi spasi atau tanda kutip, Anda harus menggunakan opsi -q .
Untuk nama pemilik, tabel, atau tampilan yang berisi spasi atau tanda kutip yang disematkan, Anda dapat:
Tentukan opsi -q , atau
Sertakan pemilik, tabel, atau nama tampilan dalam tanda kurung siku ([]) di dalam tanda kutip.
Validasi Data
bcp sekarang memberlakukan validasi data dan pemeriksaan data yang dapat menyebabkan skrip gagal jika dijalankan pada data yang tidak valid dalam file data. Misalnya, bcp sekarang memverifikasi bahwa:
Representasi asli dari jenis data float atau real valid.
Data Unicode memiliki panjang byte genap.
Formulir data tidak valid yang dapat diimpor secara massal di versi SQL Server sebelumnya mungkin gagal dimuat sekarang; sedangkan, dalam versi sebelumnya, kegagalan tidak terjadi sampai klien mencoba mengakses data yang tidak valid. Validasi yang ditambahkan meminimalkan kejutan saat mengkueri data setelah beban massal.
Mengekspor atau Mengimpor Dokumen SQLXML Secara Massal
Untuk mengekspor atau mengimpor data SQLXML secara massal, gunakan salah satu jenis data berikut dalam file format Anda.
| Jenis data | Efek |
|---|---|
| SQLCHAR atau SQLVARYCHAR | Data dikirim di halaman kode klien atau di halaman kode yang disiratkan oleh kolase). Efeknya sama dengan menentukan sakelar -c tanpa menentukan file format. |
| SQLNCHAR atau SQLNVARCHAR | Data dikirim sebagai Unicode. Efeknya sama dengan menentukan sakelar -w tanpa menentukan file format. |
| SQLBINARY atau SQLVARYBIN | Data dikirim tanpa konversi apa pun. |
Izin
Operasi bcp out memerlukan izin SELECT pada tabel sumber.
bcp dalam operasi minimal memerlukan izin SELECT/INSERT pada tabel target. Selain itu, izin ALTER TABLE diperlukan jika salah satu hal berikut ini benar:
Batasan ada dan petunjuk CHECK_CONSTRAINTS tidak ditentukan.
Catatan
Menonaktifkan batasan adalah perilaku default. Untuk mengaktifkan batasan secara eksplisit, gunakan opsi -h dengan petunjuk CHECK_CONSTRAINTS.
Pemicu ada dan petunjuk FIRE_TRIGGER tidak ditentukan.
Catatan
Secara default, pemicu tidak diaktifkan. Untuk mengaktifkan pemicu secara eksplisit, gunakan opsi -h dengan petunjuk FIRE_TRIGGERS.
Anda menggunakan opsi -E untuk mengimpor nilai identitas dari file data.
Catatan
Membutuhkan izin ALTER TABLE pada tabel target baru di SQL Server 2005 (9.x). Persyaratan baru ini dapat menyebabkan skrip bcp yang tidak memberlakukan pemicu dan pemeriksaan batasan gagal jika akun pengguna tidak memiliki izin ubah tabel untuk tabel target.
Praktik Terbaik Mode Karakter (-c) dan Mode Asli (-n)
Bagian ini memiliki rekomendasi untuk mode karakter (-c) dan mode asli (-n).
(Administrator/Pengguna) Jika memungkinkan, gunakan format asli (-n) untuk menghindari masalah pemisah. Gunakan format asli untuk mengekspor dan mengimpor menggunakan SQL Server. Ekspor data dari SQL Server menggunakan opsi -c atau -w jika data akan diimpor ke database non-SQL Server.
(Administrator) Verifikasi data saat menggunakan BCP OUT. Misalnya, ketika Anda menggunakan BCP OUT, BCP IN, lalu BCP OUT memverifikasi bahwa data diekspor dengan benar dan nilai terminator tidak digunakan sebagai bagian dari beberapa nilai data. Pertimbangkan untuk mengganti terminator default (menggunakan opsi -t dan -r) dengan nilai heksadesimal acak untuk menghindari konflik antara nilai terminator dan nilai data.
(Pengguna) Gunakan terminator panjang dan unik (urutan byte atau karakter apa pun) untuk meminimalkan kemungkinan konflik dengan nilai string aktual. Ini dapat dilakukan dengan menggunakan opsi -t dan -r.
Contoh
Bagian ini berisi contoh-contoh berikut:
J. Mengidentifikasi versi utilitas bcp
B. Menyalin baris tabel ke dalam file data (dengan koneksi tepercaya)
C. Menyalin baris tabel ke dalam file data (dengan Autentikasi mode Campuran)
D. Menyalin data dari file ke tabel
E. Menyalin kolom tertentu ke dalam file data
F. Menyalin baris tertentu ke dalam file data
G. Menyalin data dari kueri ke file data
H. Membuat file format
i. Menggunakan file format untuk mengimpor secara massal dengan bcp
j. Menentukan halaman kode
Contoh Kondisi Pengujian
Contoh di bawah ini menggunakan WideWorldImporters database sampel untuk SQL Server (mulai 2016) dan Azure SQL Database. WideWorldImporters dapat diunduh dari https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0. Lihat RESTORE (Transact-SQL) untuk sintaks untuk memulihkan database sampel. Kecuali jika ditentukan sebaliknya, contoh mengasumsikan bahwa Anda menggunakan Autentikasi Windows dan memiliki koneksi tepercaya ke instans server tempat Anda menjalankan perintah bcp . Direktori bernama D:\BCP akan digunakan dalam banyak contoh.
Skrip di bawah ini membuat salinan WideWorldImporters.Warehouse.StockItemTransactions kosong tabel lalu menambahkan batasan kunci primer. Jalankan skrip T-SQL berikut di SQL Server Management Studio (SSMS)
USE WideWorldImporters;
GO
SET NOCOUNT ON;
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Warehouse.StockItemTransactions_bcp')
BEGIN
SELECT * INTO WideWorldImporters.Warehouse.StockItemTransactions_bcp
FROM WideWorldImporters.Warehouse.StockItemTransactions
WHERE 1 = 2;
ALTER TABLE Warehouse.StockItemTransactions_bcp
ADD CONSTRAINT PK_Warehouse_StockItemTransactions_bcp PRIMARY KEY NONCLUSTERED
(StockItemTransactionID ASC);
END
Catatan
Potong StockItemTransactions_bcp tabel sesuai kebutuhan.
POTONG WideWorldImporters.Warehouse.StockItemTransactions_bcp TABEL;
J. Mengidentifikasi versi utilitas bcp
Pada prompt perintah, masukkan perintah berikut:
bcp -v
B. Menyalin baris tabel ke dalam file data (dengan koneksi tepercaya)
Contoh berikut mengilustrasikan opsi keluar pada WideWorldImporters.Warehouse.StockItemTransactions tabel.
Dasar Contoh ini membuat file data bernama
StockItemTransactions_character.bcpdan menyalin data tabel ke dalamnya menggunakan format karakter .Pada prompt perintah, masukkan perintah berikut:
bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -TDiperluas Contoh ini membuat file data bernama
StockItemTransactions_native.bcpdan menyalin data tabel ke dalamnya menggunakan format asli . Contohnya juga: menentukan jumlah maksimum kesalahan sintaks, file kesalahan, dan file output.Pada prompt perintah, masukkan perintah berikut:
bcp WideWorldImporters.Warehouse.StockItemTransactions OUT D:\BCP\StockItemTransactions_native.bcp -m 1 -n -e D:\BCP\Error_out.log -o D:\BCP\Output_out.log -S -T
Tinjau Error_out.log dan Output_out.log. Error_out.log harus kosong. Bandingkan ukuran file antara StockItemTransactions_character.bcp dan StockItemTransactions_native.bcp.
C. Menyalin baris tabel ke dalam file data (dengan autentikasi mode campuran)
Contoh berikut mengilustrasikan opsi keluar pada WideWorldImporters.Warehouse.StockItemTransactions tabel. Contoh ini membuat file data bernama StockItemTransactions_character.bcp dan menyalin data tabel ke dalamnya menggunakan format karakter .
Contoh mengasumsikan bahwa Anda menggunakan autentikasi mode campuran, Anda harus menggunakan sakelar -U untuk menentukan ID masuk Anda. Selain itu, kecuali Anda menyambungkan ke instans default SQL Server di komputer lokal, gunakan tombol -S untuk menentukan nama sistem dan, secara opsional, nama instans.
Pada prompt perintah, masukkan perintah berikut: (Sistem akan meminta kata sandi Anda.)
bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>
D. Menyalin data dari file ke tabel
Contoh berikut mengilustrasikan opsi dalam pada WideWorldImporters.Warehouse.StockItemTransactions_bcp tabel menggunakan file yang dibuat di atas.
Dasar Contoh ini menggunakan file data yang
StockItemTransactions_character.bcpdibuat sebelumnya.Pada prompt perintah, masukkan perintah berikut:
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -TDiperluas Contoh ini menggunakan file data yang
StockItemTransactions_native.bcpdibuat sebelumnya. Contohnya juga: gunakan petunjuk TABLOCK, menentukan ukuran batch, jumlah maksimum kesalahan sintaks, file kesalahan, dan file output.
Pada prompt perintah, masukkan perintah berikut:
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_native.bcp -b 5000 -h "TABLOCK" -m 1 -n -e D:\BCP\Error_in.log -o D:\BCP\Output_in.log -S -T
Tinjau Error_in.log dan Output_in.log.
E. Menyalin kolom tertentu ke dalam file data
Untuk menyalin kolom tertentu, Anda bisa menggunakan opsi kueri . Contoh berikut hanya StockItemTransactionID menyalin kolom Warehouse.StockItemTransactions tabel ke dalam file data.
Pada prompt perintah, masukkan perintah berikut:
bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\BCP\StockItemTransactionID_c.bcp -c -T
F. Menyalin baris tertentu ke dalam file data
Untuk menyalin baris tertentu, Anda bisa menggunakan opsi kueri . Contoh berikut hanya menyalin baris untuk orang yang dinamai Amy TreflWideWorldImporters.Application.People dari tabel ke dalam file Amy_Trefl_c.bcpdata . Catatan: sakelar -d digunakan untuk mengidentifikasi database.
Pada prompt perintah, masukkan perintah berikut:
bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\BCP\Amy_Trefl_c.bcp -d WideWorldImporters -c -T
G. Menyalin data dari kueri ke file data
Untuk menyalin kumpulan hasil dari pernyataan Transact-SQL ke file data, gunakan opsi kueri . Contoh berikut menyalin nama dari WideWorldImporters.Application.People tabel, diurutkan berdasarkan nama lengkap, ke People.txt dalam file data. Catatan: sakelar -t digunakan untuk membuat file yang dibatasi koma.
Pada prompt perintah, masukkan perintah berikut:
bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\BCP\People.txt -t, -c -T
H. Membuat file format
Contoh berikut membuat tiga file format berbeda untuk Warehouse.StockItemTransactions tabel dalam WideWorldImporters database. Tinjau konten setiap file yang dibuat.
Pada prompt perintah, masukkan perintah berikut:
REM non-XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.fmt -c -T
REM non-XML native format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_n.fmt -n -T
REM XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.xml -x -c -T
Catatan
Untuk menggunakan sakelar -x , Anda harus menggunakan klien bcp 9.0. Untuk informasi tentang cara menggunakan klien bcp 9.0, lihat "Komentar."
Untuk informasi selengkapnya, lihat File Format Non-XML (SQL Server) dan File Format XML (SQL Server).
i. Menggunakan file format untuk mengimpor secara massal dengan bcp
Untuk menggunakan file format yang dibuat sebelumnya saat mengimpor data ke dalam instans SQL Server, gunakan sakelar -f dengan opsi dalam . Misalnya, perintah berikut menyalin konten file data secara massal, StockItemTransactions_character.bcp, ke dalam salinan Warehouse.StockItemTransactions_bcp tabel dengan menggunakan file format yang dibuat sebelumnya, StockItemTransactions_c.xml. Catatan: sakelar -L digunakan untuk mengimpor hanya 100 rekaman pertama.
Pada prompt perintah, masukkan perintah berikut:
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in D:\BCP\StockItemTransactions_character.bcp -L 100 -f D:\BCP\StockItemTransactions_c.xml -T
Catatan
File format berguna ketika bidang file data berbeda dari kolom tabel; misalnya, dalam jumlah, pemesanan, atau jenis datanya. Untuk informasi selengkapnya, lihat Format File untuk Mengimpor atau Mengekspor Data (SQL Server).
j. Menentukan halaman kode
Contoh kode parsial berikut menunjukkan impor bcp saat menentukan halaman kode 65001:
bcp.exe MyTable in "D:\data.csv" -T -c -C 65001 -t , ...
Contoh tambahan
Pertimbangan dan batasan
- Utilitas bcp memiliki batasan bahwa pesan kesalahan hanya menunjukkan karakter 512 byte. Hanya 512 byte pertama dari pesan kesalahan yang ditampilkan.
Langkah berikutnya
- Menyiapkan Data untuk Ekspor atau Impor Massal (SQL Server)
- SISIPAN MASSAL (Transact-SQL)
- OPENROWSET (Transact-SQL)
- SET QUOTED_IDENTIFIER (Transact-SQL)
- sp_configure (Transact-SQL)
- sp_tableoption (Transact-SQL)
- Format File untuk Mengimpor atau Mengekspor Data (SQL Server)
Dapatkan bantuan
- Ide untuk SQL: 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
- Reddit: Diskusi umum tentang SQL Server
- Syarat dan Informasi Lisensi Microsoft SQL Server
- Opsi dukungan untuk pengguna bisnis
- Hubungi Microsoft
- Bantuan dan umpan balik SQL Server tambahan