biner dan varbinary (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) titik akhir analitik SQL di Microsoft Fabric Warehouse dalam database Microsoft Fabric SQL di Microsoft Fabric
Jenis data biner dengan panjang tetap atau panjang variabel.
Argumen
biner [ ( n ) ]
Data biner panjang tetap dengan panjang n byte, di mana n adalah nilai dari 1 hingga 8.000. Ukuran penyimpanan adalah n byte.
varbinary [ ( n | maks ) ]
Data biner panjang variabel. n dapat berupa nilai dari 1 hingga 8.000. max menunjukkan bahwa ukuran penyimpanan maksimum adalah 2^31-1 byte. Ukuran penyimpanan adalah panjang aktual data yang dimasukkan + 2 byte. Panjang data yang dimasukkan bisa 0 byte. Sinonim ANSI SQL untuk varbinary bervariasi.
Keterangan
Panjang default adalah 1 ketika n tidak ditentukan dalam definisi data atau pernyataan deklarasi variabel. Ketika n tidak ditentukan dengan CAST
fungsi , panjang defaultnya adalah 30.
Jenis Data | Gunakan saat ... |
---|---|
biner | ukuran entri data kolom konsisten. |
varbinary | ukuran entri data kolom sangat bervariasi. |
varbinary(max) | entri data kolom melebihi 8.000 byte. |
Mengonversi data biner dan varbinary
Saat mengonversi data dari jenis data string ke jenis data biner atau varbinary dengan panjang yang tidak sama, pad SQL Server atau memotong data di sebelah kanan. Jenis data string ini adalah:
- Char
- varchar
- nchar
- nvarchar
- biner
- varbinary
- text
- ntext
- gambar
Ketika jenis data lain dikonversi ke biner atau varbinary, data diisi atau dipotong di sebelah kiri. Padding dicapai dengan menggunakan nol heksadesimal.
Mengonversi data ke jenis data biner dan varbinary berguna jika data biner adalah cara term mudah untuk berpindah-pindah data. Pada titik tertentu, Anda mungkin mengonversi jenis nilai menjadi nilai biner dengan ukuran yang cukup besar lalu mengonversinya kembali. Konversi ini selalu menghasilkan nilai yang sama jika kedua konversi berlangsung pada versi SQL Server yang sama. Representasi biner dari nilai mungkin berubah dari versi ke versi SQL Server.
Anda dapat mengonversi int, smallint, dan tinyint menjadi biner atau varbinary. Jika Anda mengonversi nilai biner kembali ke nilai bilangan bulat, nilai ini akan berbeda dari nilai bilangan bulat asli jika pemotongan telah terjadi. Misalnya, pernyataan SELECT berikut menunjukkan bahwa nilai 123456
bilangan bulat disimpan sebagai biner 0x0001e240
:
SELECT CAST( 123456 AS BINARY(4) );
Namun, pernyataan berikut SELECT
menunjukkan bahwa jika target biner terlalu kecil untuk menahan seluruh nilai, digit di depan dipotong secara diam-diam sehingga angka yang sama disimpan sebagai 0xe240
:
SELECT CAST( 123456 AS BINARY(2) );
Batch berikut menunjukkan bahwa pemotongan senyap ini dapat memengaruhi operasi aritmatika tanpa menimbulkan kesalahan:
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
Hasil akhir adalah 57921
, bukan 123457
.
Catatan
Konversi antara jenis data apa pun dan jenis data biner tidak dijamin sama antara versi SQL Server.
Batasan
Saat ini, di Microsoft Fabric, hanya varbinary(n) yang didukung. Jenis data biner dan varbinary(max) tidak didukung.