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
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Panjang bidang menunjukkan jumlah maksimum karakter yang diperlukan untuk mewakili data dalam format karakter. Panjang bidang sudah diketahui jika data disimpan dalam format asli; misalnya, jenis data int membutuhkan 4 byte. Jika Anda telah menunjukkan 0 untuk panjang prefiks, perintah bcp akan meminta Anda memasukkan panjang bidang, panjang bidang bawaan, serta dampak panjang bidang tersebut terhadap penyimpanan data dalam file data yang berisi data char.
Instruksi bcp untuk panjang bidang
Jika perintah interaktif bcp berisi opsi in atau out tanpa sakelar file format (-f) atau sakelar format data (-n, -c, -w, atau -N), perintah akan meminta panjang bidang untuk setiap bidang data, sebagai berikut:
Enter length of field <field_name> [<default>]:
Untuk contoh yang memperlihatkan perintah ini dalam konteks, lihat Menentukan Format Data untuk Kompatibilitas saat Menggunakan bcp (SQL Server).
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).
Apakah perintah bcp meminta panjang bidang tergantung pada beberapa faktor, sebagai berikut:
Saat Anda menyalin jenis data yang tidak memiliki panjang tetap dan Anda menentukan panjang awalan 0, bcp meminta panjang bidang.
Saat mengonversi data noncharacter ke data karakter, bcp menyarankan panjang bidang default yang cukup besar untuk menyimpan data.
Jika jenis penyimpanan file adalah noncharacter, perintah bcp tidak meminta panjang bidang. Data disimpan dalam representasi data asli Microsoft SQL Server (format asli).
Gunakan panjang kolom default
Umumnya, Microsoft menyarankan agar Anda menerima nilai default yang disarankan bcp untuk panjang bidang. Saat file data dalam mode karakter dibuat, menggunakan panjang bidang bawaan memastikan bahwa data tidak terpotong dan kesalahan kelebihan angka tidak terjadi.
Jika Anda menentukan panjang bidang yang salah, masalah dapat terjadi. Misalnya, jika Anda menyalin data numerik dan menentukan panjang bidang yang terlalu pendek untuk data, utilitas bcp mencetak pesan luapan dan tidak menyalin data. Selain itu, jika Anda mengekspor data datetime dan menentukan panjang bidang karakter kurang dari 26 byte, utilitas bcp memotong data tanpa pesan kesalahan.
Penting
Ketika opsi ukuran default digunakan, SQL Server mengharapkan untuk membaca seluruh string. Dalam beberapa situasi, penggunaan panjang kolom default berpotensi menimbulkan kesalahan "akhir file yang tidak terduga". Biasanya, kesalahan ini terjadi dengan jenis data uang dan tanggal dan waktu ketika hanya sebagian dari bidang yang diharapkan tersembunyi dalam file data; misalnya, ketika nilai tanggal dan waktumm/dd/ ditentukan tanpa komponen waktu dan, oleh karena itu, lebih pendek dari panjang karakter 24 yang diharapkan dari nilai tanggal dan waktu dalam format char. Untuk menghindari jenis kesalahan ini, gunakan terminator bidang atau bidang data dengan panjang tetap, atau ubah panjang bidang default dengan menentukan nilai lain.
Panjang bidang default untuk penyimpanan file karakter
Tabel berikut mencantumkan panjang bidang default untuk data yang akan disimpan sebagai jenis penyimpanan file karakter. Data nullable memiliki panjang yang sama dengan data nonnull.
| Jenis Data | Panjang default (karakter) |
|---|---|
| Char | Panjang yang ditentukan untuk kolom |
| varchar | Panjang yang ditentukan untuk kolom |
| nchar | Dua kali panjang yang ditentukan untuk kolom |
| nvarchar | Dua kali panjang yang ditentukan untuk kolom |
| Teks | 0 |
| ntext | 0 |
| bit | 1 |
| biner | Dua kali panjang yang ditentukan untuk kolom + 1 |
| varbinary | Dua kali panjang yang ditentukan untuk kolom + 1 |
| gambar | 0 |
| datetime | 24 |
| smalldatetime | 24 |
| float | 30 |
| real | 30 |
| int | 12 |
| bigint | 19 |
| smallint | 7 |
| tinyint | 5 |
| uang | 30 |
| smallmoney | 30 |
| desimal | 41 1 |
| numerik | 41 1 |
| pengidentifikasi unik | 37 |
| timestamp | 17 |
| varchar(max) | 0 |
| varbinary(max) | 0 |
| nvarchar(maks) | 0 |
| UDT | Panjang kolom istilah yang ditentukan pengguna (UDT) |
| XML | 0 |
| vector | Tidak Berlaku 2 |
1 Untuk informasi selengkapnya tentang jenis data desimal dan numerik , lihat Desimal dan numerik (Transact-SQL).
2 Konversi jenis data vektor ke dan dari karakter tidak diizinkan.
Catatan
Kolom tipe tinyint dapat memiliki nilai dari 0 hingga 255; jumlah maksimum karakter yang diperlukan untuk mewakili angka apa pun dalam rentang tersebut adalah tiga (mewakili nilai 100 hingga 255).
Panjang bidang standar untuk penyimpanan berkas asli
Tabel berikut mencantumkan panjang bidang default untuk data yang akan disimpan sebagai jenis penyimpanan file asli. Data nullable memiliki panjang yang sama dengan data nonnull, dan data karakter selalu disimpan dalam format karakter.
| Jenis Data | Panjang default (karakter) |
|---|---|
| bit | 1 |
| biner | Panjang yang ditentukan untuk kolom |
| varbinary | Panjang yang ditentukan untuk kolom |
| gambar | 0 |
| datetime | 8 |
| smalldatetime | 4 |
| float | 8 |
| real | 4 |
| int | 4 |
| bigint | 8 |
| smallint | 2 |
| tinyint | 1 |
| uang | 8 |
| smallmoney | 4 |
| desimal | 1 |
| numerik | 1 |
| pengidentifikasi unik | 16 |
| timestamp | 8 |
| vector | Header vektor 8-byte + ukuran larik float |
1 Untuk informasi selengkapnya tentang jenis data desimal dan numerik , lihat desimal dan numerik (Transact-SQL).
Dalam semua kasus sebelumnya, untuk membuat file data untuk dimuat ulang nanti ke SQL Server yang menjaga ruang penyimpanan tetap minimum, gunakan awalan panjang dengan jenis penyimpanan file default dan panjang bidang default.