Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Tipi di dati binary a lunghezza fissa o variabile.
Arguments
binario [ ( n ) ]
Dati binari a lunghezza fissa con lunghezza di n byte, dove n è un valore compreso tra 1 e 8.000. Le dimensioni di archiviazione corrispondono a n byte.
varbinary [ ( n | max ) ]
Dati binary a lunghezza variabile. n può essere un valore compreso tra 1 e 8.000. max indica che la capacità di memorizzazione massima è di 2^31-1 byte. Le dimensioni dello spazio di archiviazione corrispondono alla lunghezza effettiva dei dati immessi + 2 byte. È possibile che la lunghezza dei dati immessi sia pari a 0 byte. L'equivalente di ANSI SQL per varbinary è binary varying.
Remarks
Se non si specifica n in un'istruzione di definizione dei dati o di dichiarazione di variabili, la lunghezza predefinita è 1. Quando n non viene specificato con la CAST funzione, la lunghezza predefinita è 30.
| Tipo di dati | Usare se... |
|---|---|
| binary | le dimensioni delle voci di dati delle colonne sono consistenti. |
| varbinary | le dimensioni delle voci di dati delle colonne presentano notevoli differenze. |
| varbinary(max) | le voci di dati delle colonne superano gli 8.000 byte. |
Convertire dati binari e varbinary
In caso di conversione da un tipo di dati stringa a un tipo di dati binary o varbinary di lunghezza diversa, SQL Server esegue il riempimento o il troncamento dei dati a destra. Tali tipi di dati stringa sono:
- char
- varchar
- nchar
- nvarchar
- binary
- varbinary
- text
- ntext
- image
Nella conversione di altri tipi di dati nel tipo binary o varbinary, viene eseguito il riempimento o il troncamento dei dati a sinistra. Il riempimento viene eseguito utilizzando zero esadecimali.
La conversione nei tipi di dati binary e varbinary è utile quando i dati binary risultano i dati più semplici da spostare. A un certo punto si potrebbe convertire un tipo valore in un valore binario di dimensioni sufficienti e quindi riconvertirlo. Questa conversione genera sempre lo stesso valore se entrambe le conversioni vengono eseguite nella stessa versione di SQL Server. La rappresentazione binaria di un valore può variare da una versione all'altra di SQL Server.
È possibile convertire int, smallint e tinyint in binary o varbinary. Se si riconverte il valore binario in un valore intero, questo valore è diverso dal valore intero originale se si è verificata una troncazione. L'istruzione SELECT seguente, ad esempio, mostra che il valore intero 123456 viene in genere archiviato come 0x0001e240 binario:
SELECT CAST( 123456 AS BINARY(4) );
L'istruzione SELECT seguente illustra il troncamento automatico delle cifre iniziali se il valore di destinazione binary è troppo piccolo per l'archiviazione dell'intero valore, in modo che lo stesso numero possa essere archiviato sotto forma di 0xe240:
SELECT CAST( 123456 AS BINARY(2) );
Il batch seguente illustra come il troncamento automatico possa influire sulle operazioni aritmetiche senza tuttavia generare errori:
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
Il risultato finale è 57921, non 123457.
Note
È possibile che le conversioni da un tipo di dati ai tipi di dati binary e viceversa eseguite in versioni diverse di SQL Server producano risultati diversi.