ikili ve varbinary (Transact-sql)

İkili veri türleri ya da uzunluğu veya değişken uzunluğu sabit.

  • binary [ ( n ) ]
    Sabit uzunlukta ikili veri uzunluğu ile nbayt, nerede n1 8.000 ile değer. Depolama boyutu nbayt.

  • varbinary [ ( n | max) ]
    Değişken uzunlukta ikili veri. n8.000 ile 1 arasında bir değer olabilir. maxgösteren maksimum depolama ölçüsü 2 ^ 31-1 bayt. Depolama boyutu, girilen verilerin gerçek uzunluğu + 2 bayttır. Girilen veri, 0 bayt uzunluğunda olabilir. ANSI sql eşanlamlı varbinaryolan ikili değişen.

Açıklamalar

Ne zaman nbelirtilen bir veri tanımı ya da değişken bildiriminde deyimi, varsayılan uzunluğu 1. Ne zaman nbelirtilen cast işlevi ile varsayılan uzunluğu 30.

Kullanım binaryzaman sütun veri girişleri boyutları tutarlı.

Kullanım varbinaryzaman sütun veri girişleri boyutlarını önemli ölçüde değişebilir.

Kullanım varbinary(max)zaman sütun veri girişleri 8.000 bayt aşıyor.

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

Ne zaman veri bir dize veri türü dönüştürülür (char, varchar, nchar, nvarchar, binary, varbinary, text, ntext, ya image) için bir binaryveya varbinaryeşitsiz uzunluğu, veri türü SQL Serverbezleri ya da veri sağdaki keser. Ne zaman diğer veri türleri dönüştürülür binaryya varbinary, veri destekli ya da sol taraftaki fazlalıkları. Doldurma, onaltılık sıfır kullanılarak elde edilir.

Veri dönüştürme binaryve varbinaryveri türleri yararlı eğer binaryverilerdir veri dolaşmak için en kolay yolu. Herhangi bir değerin herhangi bir dönüştürme büyük ikili değerine yeterli boyutunu yazın ve her iki dönüşümleri aynı sürümünü yer alıyor sonra türü için her zaman aynı değer neden olur SQL Server. Bir değeri ikili gösterimini sürümden sürüme değişebilir SQL Server.

Sen-ebilmek değiştirmek int, smallint, ve tinyintiçin binaryveya varbinary, ama sen dönüştürürseniz, binarydeğer sırt-e doğru bu değeri bir tamsayı değeri olmaz özgün tamsayı değerden farklı kesme oluştu. Örneğin, aşağıdaki seçme deyimini tamsayı değeri gösteren 123456genellikle bir ikili dosya olarak depolanır 0x0001e240:

SELECT CAST( 123456 AS BINARY(4) );

SELECT CAST( 123456 AS BINARY(4) );

Ancak, aşağıdaki SELECTdeyimi gösterir eğer binaryhedefi tüm değeri tutmak için çok küçük, böylece aynı sayı olarak depolanır baştaki basamak sessizce atılır 0xe240:

SELECT CAST( 123456 AS BINARY(2) );

SELECT CAST( 123456 AS BINARY(2) );

Aşağıdaki toplu işi hata yükseltme olmadan bu sessiz kesilme aritmetik işlemleri etkileyebilir gösterir:

DECLARE @BinaryVariable2 BINARY(2);

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

SELECT CAST( @BinaryVariable2 AS INT);
GO

DECLARE @BinaryVariable2 BINARY(2);

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

SELECT CAST( @BinaryVariable2 AS INT);
GO

Nihai sonucu olan 57921, 123457.

[!NOT]

Arasında herhangi bir veri dönüşümleri yazın ve binaryveri türleri aynı sürümleri arasında garanti edilmeyen SQL Server.

Ayrıca bkz.

Başvuru

CAST ve CONVERT (Transact-SQL)

Veri Türleri (Transact-SQL)

Kavramlar

Veri türü dönüştürme (veritabanı altyapısı)