Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Binära datatyper med antingen fast längd eller variabel längd.
Arguments
binary [ ( n ) ]
Binära data med fast längd med en längd på n byte, där n är ett värde från 1 till 8 000. Lagringsstorleken är n byte.
varbinary [ ( n | max ) ]
Binära data med variabel längd. n kan vara ett värde från 1 till 8 000. max anger att den maximala lagringsstorleken är 2^31–1 byte. Lagringsstorleken är den faktiska längden på de data som anges + 2 byte. De data som anges kan vara 0 byte långa. ANSI SQL-synonymen för varbinary är binär varierande.
Remarks
Standardlängden är 1 när n inte anges i en datadefinition eller en variabeldeklarationssats. När n inte anges med CAST funktionen är standardlängden 30.
| Data type | Använd när ... |
|---|---|
| binary | storleken på kolumndataposterna är konsekventa. |
| varbinary | storleken på kolumndataposterna varierar avsevärt. |
| varbinary(max) | kolumndataposterna överstiger 8 000 byte. |
Konvertera binära data och varbinära data
När du konverterar data från en strängdatatyp till en binär eller varbinär datatyp med olika längd, trunkerar ELLER trunkerar SQL Server data till höger. Dessa strängdatatyper är:
- char
- varchar
- nchar
- nvarchar
- binary
- varbinary
- text
- ntext
- image
När andra datatyper konverteras till binär eller varbinär, vadderas eller trunkeras data till vänster. Utfyllnad uppnås med hexadecimala nollor.
Att konvertera data till binära och varbinära datatyper är användbart om binära data är det enklaste sättet att flytta runt data. Vid något tillfälle kan du konvertera en värdetyp till ett binärt värde med tillräckligt stor storlek och sedan konvertera tillbaka den. Den här konverteringen resulterar alltid i samma värde om båda konverteringarna sker på samma version av SQL Server. Den binära representationen av ett värde kan ändras från version till version av SQL Server.
Du kan konvertera int, smallint och tinyint till binär eller varbinär. Om du konverterar tillbaka det binära värdet till ett heltalsvärde skiljer sig det här värdet från det ursprungliga heltalsvärdet om trunkeringen har inträffat. Följande SELECT-instruktion visar till exempel att heltalsvärdet 123456 lagras som binärt 0x0001e240:
SELECT CAST( 123456 AS BINARY(4) );
Följande SELECT instruktion visar dock att om det binära målet är för litet för att innehålla hela värdet trunkeras de inledande siffrorna tyst så att samma tal lagras som 0xe240:
SELECT CAST( 123456 AS BINARY(2) );
Följande batch visar att den här tysta trunkeringen kan påverka aritmetiska åtgärder utan att skapa ett fel:
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
Slutresultatet är 57921, inte 123457.
Note
Konverteringar mellan alla datatyper och binära datatyper garanteras inte vara desamma mellan versioner av SQL Server.
Limitations
För närvarande stöds endast varbinary(n) i Microsoft Fabric. Datatyperna binary och varbinary(max) stöds inte.