Skip to main content

Binära datatyper i SQL Server

Me singing I'll Wait For You by Elliot Yamin (Juni 2026)

Me singing I'll Wait For You by Elliot Yamin (Juni 2026)
Anonim

Microsoft SQL Server stöder sju olika kategorier av data. Av dessa, binära strängar tillåta kodad data representerad som binära objekt.

Datatyper i kategorin binära strängar omfattar:

  • bit variabler lagrar en enda bit med ett värde på 0, 1 eller NULL.
  • binär (n) variabler lagra n byte av binär data med fast storlek. Dessa fält kan spara högst 8000 byte.
  • varbinary (n) variabler lagrar binär data med varierande längd om ungefärligt n byte. De får lagra max 8000 byte.
  • varbinary (max) variabler lagrar binär data med varierande längd om ungefärligt n byte. De får lagra max 2 GB och lagra faktiskt längden på data plus ytterligare två byte.
  • bild variabler lagrar upp till 2 GB data och används vanligtvis för att lagra alla typer av datafil (inte bara bilder).

De bild typen är planerad för avskrivning i en framtida release av SQL Server. Microsoft-ingenjörer rekommenderar att du använder varbinary (max) istället för bild typer för framtida utveckling.

Lämpliga användningsområden

Använda sig av bit kolumner när du behöver lagra ja-eller-nej typer av data som representeras av nollor och sådana. Använda sig av binär kolumner när storleken på kolumnerna är relativt likformig. Använda sig av varbinary kolumner när kolumnstorleken förväntas överstiga 8K eller kan vara föremål för signifikant variation i storlek per post.

omvandlingar

T-SQL - varianten av SQL som används i Microsoft SQL Server - right-pads-data när du konverterar från en strängtyp till en binär eller varbinary typ. Vilken annan typ av omvandling som helst till en binär typ ger en vänstra kudde. Denna padding åstadkommes genom användning av hexadecimala nollor.

På grund av denna omvandling och risken för trunkning, om fältet efter konvertering inte är tillräckligt stort, är det möjligt att konverterade fält kan resultera i aritmetiska fel utan att kasta ett felmeddelande.