biner dan varbinary (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse 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.

Baca juga