Bagikan melalui


Tentukan panjang awalan dalam file data menggunakan bcp (SQL Server)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Untuk menyediakan penyimpanan file yang paling ringkas untuk ekspor data secara massal dalam format asli ke file data, perintah bcp mendahului setiap bidang dengan satu atau beberapa karakter yang menunjukkan panjang bidang. Karakter ini disebut karakter awalan panjang.

Permintaan bcp untuk panjang awalan

Jika perintah bcp interaktif berisi opsi in atau out tanpa sakelar file format (-f) atau sakelar format data (-n, -c, -w, atau -N), perintah akan meminta panjang awalan setiap bidang data, sebagai berikut.

Enter prefix length of field <field_name> [<default>]:

Jika Anda menentukan 0, bcp akan meminta masukan panjang bidang (untuk tipe data karakter) atau penghentian bidang (untuk tipe data non-karakter bawaan).

Catatan

Setelah Anda secara interaktif menentukan semua bidang dalam perintah bcp , perintah meminta Anda menyimpan respons untuk setiap bidang dalam file format non-XML. Untuk informasi selengkapnya tentang file format non-XML, lihat File Format Non-XML (SQL Server).

Gambaran umum panjang awalan

Untuk menyimpan panjang awalan bidang, Anda memerlukan cukup byte untuk mewakili panjang maksimum bidang. Jumlah byte yang diperlukan juga tergantung pada jenis tipe penyimpanan file, nullability kolom, dan apakah data disimpan dalam file data dalam format aslinya atau format karakter. Misalnya, jenis data teks atau gambar memerlukan empat karakter awalan untuk menyimpan panjang bidang, tetapi jenis data varchar memerlukan dua karakter. Dalam file data, karakter awalan panjang ini disimpan dalam format data biner internal SQL Server.

Penting

Saat Anda menggunakan format asli, gunakan awalan panjang daripada pembatas bidang. Data format asli mungkin bertentangan dengan terminator karena file data dengan format asli memiliki penyimpanan dalam format data biner internal milik SQL Server.

Panjang awalan untuk ekspor massal

Catatan

Nilai default yang disediakan pada petunjuk panjang awalan saat Anda mengekspor data sebuah bidang menunjukkan panjang awalan yang paling efisien untuk bidang tersebut.

Nilai null direpresentasikan sebagai bidang kosong. Untuk menunjukkan bahwa bidang kosong (mewakili NULL), awalan bidang berisi nilai -1; artinya, bidang memerlukan setidaknya 1 byte. Jika kolom tabel SQL Server memungkinkan nilai null, kolom memerlukan panjang awalan 1 atau lebih besar, tergantung pada jenis penyimpanan file.

Saat Anda mengekspor data secara massal dan menyimpannya dalam jenis data asli atau format karakter, gunakan panjang awalan yang diperlihatkan dalam tabel berikut.

SQL Server
jenis data
Format asli
NOT NULL
Format asli
NULL
Format karakter
NOT NULL
Format karakter
NULL
Char 2 2 2 2
varchar 2 2 2 2
nchar 2 2 2 2
nvarchar 2 2 2 2
Teks* 4 4 4 4
ntext* 4 4 4 4
biner 2 2 2 2
varbinary 2 2 2 2
gambar* 4 4 4 4
datetime 0 1 0 1
smalldatetime 0 1 0 1
desimal 1 1 1 1
numerik 1 1 1 1
float 0 1 0 1
real 0 1 0 1
int 0 1 0 1
bigint 0 1 0 1
smallint 0 1 0 1
tinyint 0 1 0 1
uang 0 1 0 1
smallmoney 0 1 0 1
bit 0 1 0 1
pengidentifikasi unik 1 1 0 1
timestamp 1 1 1 1
varchar(max) 8 8 8 8
varbinary(max) 8 8 8 8
UDT (jenis data yang ditentukan pengguna) 8 8 8 8
XML 8 8 8 8
sql_variant 8 8 8 8
vector 2 2 N/A N/A
  • Jenis data ntext, teks, dan gambar akan dihapus di versi SQL Server yang akan datang. Hindari menggunakan jenis data ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakannya. Gunakan nvarchar(max), varchar(max), dan varbinary(max) sebagai gantinya.

Panjang awalan untuk impor massal

Ketika data diimpor secara massal, panjang awalan adalah nilai yang ditentukan ketika file data dibuat pada awalnya. Jika file data tidak dibuat oleh perintah bcp , karakter awalan panjang mungkin tidak ada. Dalam hal ini, tentukan 0 untuk panjang awalan.

Catatan

Untuk menentukan panjang awalan dalam file data yang tidak dibuat dengan menggunakan bcp, gunakan panjang awalan yang telah disediakan dalam Panjang Awalan untuk Ekspor secara Massal, yang telah dibahas sebelumnya dalam topik ini.