Bagikan melalui


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)