Tentukan Panjang Bidang dengan Menggunakan bcp (SQL Server)
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 awalan, perintah bcp meminta panjang bidang, panjang bidang default, dan dampak panjang bidang pada penyimpanan data dalam file data yang berisi data karakter .
Permintaan bcp untuk Panjang Bidang
Jika perintah bcp interaktif berisi opsi masuk atau keluar tanpa sakelar file format (-f) atau sakelar format data (-n, -c, -w, atau -N), perintah meminta panjang bidang 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 noncharacter, perintah bcp tidak meminta panjang bidang. Data disimpan dalam representasi data asli Microsoft SQL Server (format asli).
Menggunakan Panjang Bidang Default
Umumnya, Microsoft menyarankan agar Anda menerima nilai default yang disarankan bcp untuk panjang bidang. Saat file data mode karakter dibuat, menggunakan panjang bidang default memastikan bahwa data tidak terpotong dan kesalahan luapan numerik 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 tanggalwaktu dan menentukan panjang bidang kurang dari 26 byte untuk string karakter, 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 bidang default dapat menyebabkan kesalahan "akhir file yang tidak terduga". Biasanya, kesalahan ini terjadi dengan jenis data uang dan tanggalwaktu ketika hanya sebagian dari bidang yang diharapkan yang terjadi dalam file data; misalnya, ketika nilai tanggalwaktu mm/dd/yy ditentukan tanpa komponen waktu dan, oleh karena itu, lebih pendek dari panjang 24 karakter yang diharapkan dari nilai tanggalwaktu dalam format karakter. 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 |
kecil | 5 |
uang | 30 |
smallmoney | 30 |
desimal | 41* |
numerik | 41* |
pengidentifikasi unik | 37 |
timestamp | 17 |
varchar(max) | 0 |
varbinary(max) | 0 |
nvarchar(maks) | 0 |
UDT | Panjang kolom istilah yang ditentukan pengguna (UDT) |
XML | 0 |
*Untuk informasi selengkapnya tentang jenis data desimal dan numerik , lihat desimal dan numerik (Transact-SQL).
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 Default untuk Penyimpanan File 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 |
kecil | 1 |
uang | 8 |
smallmoney | 4 |
desimal | * |
numerik | * |
pengidentifikasi unik | 16 |
timestamp | 8 |
*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.
Lihat Juga
Utilitas bcp
Tipe Data (Transact-SQL)
Tentukan Terminator Bidang dan Baris (SQL Server)
Tentukan Panjang Awalan dalam File Data dengan Menggunakan bcp (SQL Server)
Tentukan Jenis Penyimpanan File dengan Menggunakan bcp (SQL Server)
Pertahankan Null atau Gunakan Nilai Default Selama Impor Massal (SQL Server)