Aracılığıyla paylaş


ikili ve varbinary (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Sabit uzunlukta veya değişken uzunlukta ikili veri türleri.

Arguments

ikili [ ( n ) ]

N bayt uzunluğunda sabit uzunlukta ikili veriler; burada n, 1 ile 8.000 arasında bir değerdir. Depolama boyutu n bayttır.

varbinar [ ( n | max) ]

Değişken uzunlukta ikili veriler. n , 1 ile 8.000 arasında bir değer olabilir. max , maksimum depolama boyutunun 2^31-1 bayt olduğunu gösterir. Depolama boyutu, girilen verilerin gerçek uzunluğu + 2 bayttır. Girilen veriler 0 bayt uzunluğunda olabilir. Varbinary için ANSI SQL eş anlamlısı ikili değişkendir.

Remarks

Bir veri tanımında veya değişken bildirim deyiminde n belirtilmediğinde varsayılan uzunluk 1'dir. n işleviyle CAST uzunluk 30'dur.

Veri türü Şu durumlarda kullan:...
binary sütun veri girdilerinin boyutları tutarlıdır.
varbinary sütun veri girdilerinin boyutları önemli ölçüde farklılık gösterir.
varbinary(max) sütun veri girdileri 8.000 baytı aşıyor.

İkili ve varbinary verileri dönüştürme

Bir dize veri türünden verileri eşit uzunlukta olmayan bir ikili veya varbinary veri türüne dönüştürürken, SQL Server sağdaki verileri düzenler veya kesebilir. Bu dize veri türleri şunlardır:

  • char
  • varchar
  • nchar
  • nvarchar
  • binary
  • varbinary
  • text
  • ntext
  • image

Diğer veri türleri ikili veya varbinary'ye dönüştürüldüğünde, veriler sol tarafta doldurulur veya kesilir. Doldurma, onaltılık sıfırlar kullanılarak elde edilir.

verileri ikili ve varbinary veri türlerine dönüştürmek, verilerde gezinmenin en kolay yolu ikili verilerse yararlıdır. Bir noktada, bir değer türünü yeterince büyük bir ikili değere dönüştürebilir ve sonra geri dönüştürebilirsiniz. Her iki dönüştürme de SQL Server'ın aynı sürümünde gerçekleştiriliyorsa, bu dönüştürme her zaman aynı değerle sonuçlanıyor. Bir değerin ikili gösterimi, SQL Server sürümünden sürümüne değişebilir.

int, smallint ve tinyint'iikili veya varbinary'ye dönüştürebilirsiniz. Eğer ikili değeri tekrar tam sayı değerine dönüştürürseniz, bu değer kısaltma gerçekleştiğinde orijinal tam sayı değerinden farklıdır. Örneğin, aşağıdaki SELECT deyimi tamsayı değerinin 123456 ikili 0x0001e240olarak depolandığını gösterir:

SELECT CAST( 123456 AS BINARY(4) );

Ancak aşağıdaki SELECT deyim, ikili hedef değerin tamamını tutamayacak kadar küçükse, aynı sayinin ile depolanması 0xe240için baştaki basamakların sessizce kesildiğini gösterir:

SELECT CAST( 123456 AS BINARY(2) );

Aşağıdaki toplu işlem, bu sessiz kesme işleminin bir hata oluşturmadan aritmetik işlemleri etkileyebileceğini gösterir:

DECLARE @BinaryVariable2 BINARY(2);

SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;

SELECT CAST( @BinaryVariable2 AS INT);
GO

Nihai sonuç , değil 57921şeklindedir123457.

Note

Herhangi bir veri türü ile ikili veri türleri arasındaki dönüştürmelerin SQL Server sürümleri arasında aynı olacağı garanti edilmemektedir.