Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Binární datové typy s pevnou délkou nebo proměnlivou délkou.
Arguments
binární [ ( n ) ]
Binární data s pevnou délkou s délkou n bajtů, kde n je hodnota od 1 do 8 000. Velikost úložiště je n bajtů.
varbinární [ ( n | max ) ]
Binární data s proměnnou délkou n může být hodnota od 1 do 8 000. Max udává, že maximální velikost úložiště je 2^31-1 bajtů. Velikost úložiště je skutečná délka zadaných dat + 2 bajty. Zadaná data mohou mít délku 0 bajtů. Synonymum ANSI SQL pro varbinary je binární.
Remarks
Výchozí délka je 1, pokud není zadána v definici dat nebo příkazu deklarace proměnné. Pokud není zadána funkce CAST, je výchozí délka 30.
| Datový typ | Použít, když ... |
|---|---|
| binary | velikosti datových položek sloupců jsou konzistentní. |
| varbinary | velikosti datových položek sloupců se výrazně liší. |
| varbinary(max) | datové položky sloupce překračují 8 000 bajtů. |
Převod binárních a varbinárních dat
Při převodu dat z datového typu řetězce na binární nebo varbinární datový typ nerovné délky SQL Server pads nebo zkrátí data vpravo. Mezi tyto datové typy řetězců patří:
- char
- varchar
- nchar
- nvarchar
- binary
- varbinary
- text
- ntext
- image
Pokud jsou jiné datové typy převedeny na binární nebo varbinární, data jsou vycpána nebo zkrácena vlevo. Odsazení se dosahuje pomocí šestnáctkových nul.
Převod dat na binární a varbinární datové typy je užitečný, pokud jsou binární data nejjednodušší způsob, jak se pohybovat kolem dat. V určitém okamžiku můžete převést typ hodnoty na binární hodnotu dostatečně velké velikosti a pak ho převést zpět. Tento převod vždy vede ke stejné hodnotě, pokud se oba převody provádějí ve stejné verzi SQL Serveru. Binární reprezentace hodnoty se může změnit z verze na verzi SQL Serveru.
Můžete převést int, smallint a tinyint na binární nebo varbinární. Pokud převedete binární hodnotu zpět na celočíselnou hodnotu, tato hodnota se liší od původní celočíselné hodnoty, pokud by došlo k ořezání. Například následující příkaz SELECT ukazuje, že celočíselná hodnota 123456 je uložena jako binární 0x0001e240:
SELECT CAST( 123456 AS BINARY(4) );
Následující SELECT příkaz však ukazuje, že pokud je binární cíl příliš malý na uložení celé hodnoty, počáteční číslice jsou bezobslužně zkráceny tak, aby stejné číslo bylo uloženo jako 0xe240:
SELECT CAST( 123456 AS BINARY(2) );
Následující dávka ukazuje, že toto tiché zkrácení může ovlivnit aritmetické operace bez vyvolání chyby:
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
Konečný výsledek je 57921, ne 123457.
Note
Převody mezi libovolným datovým typem a binárními datovými typy nejsou zaručeny stejné mezi verzemi SQL Serveru.
Související obsah
- CAST a CONVERT (Transact-SQL)
-
převodu datových typů (databázový stroj) - Datové typy (Transact-SQL)