Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Tipos de dados binários de comprimento fixo ou comprimento variável.
Arguments
binário [ ( n ) ]
Dados binários de comprimento fixo com um comprimento de n bytes, onde n é um valor de 1 a 8.000. O tamanho do armazenamento é de n bytes.
varbinary [ ( n | máximo ) ]
Dados binários de comprimento variável. n pode ser um valor de 1 a 8.000. max indica que o tamanho máximo de armazenamento é 2^31-1 bytes. O tamanho do armazenamento é o comprimento real dos dados inseridos + 2 bytes. Os dados inseridos podem ter 0 bytes de comprimento. O sinônimo ANSI SQL para varbinary é binário variando.
Remarks
O comprimento padrão é 1 quando n não é especificado em uma definição de dados ou instrução de declaração variável. Quando n não é especificado com a CAST função, o comprimento padrão é 30.
| Tipo de dados | Use quando ... |
|---|---|
| binary | Os tamanhos das entradas de dados da coluna são consistentes. |
| varbinary | Os tamanhos das entradas de dados da coluna variam consideravelmente. |
| varbinary(max) | As entradas de dados da coluna excedem 8.000 bytes. |
Converter dados binários e varbinary
Ao converter dados de um tipo de dados de cadeia de caracteres para um tipo de dados binário ou varbinary de comprimento desigual, o SQL Server preenche ou trunca os dados à direita. Esses tipos de dados de cadeia de caracteres são:
- char
- varchar
- nchar
- nvarchar
- binary
- varbinary
- text
- ntext
- image
Quando outros tipos de dados são convertidos em binários ou varbinários, os dados são acolchoados ou truncados à esquerda. O preenchimento é obtido usando zeros hexadecimais.
A conversão de dados para os tipos de dados binários e varbinary é útil se os dados binários forem a maneira mais fácil de mover dados. Em algum momento, você pode converter um tipo de valor em um valor binário de tamanho grande o suficiente e, em seguida, convertê-lo de volta. Essa conversão sempre resulta no mesmo valor se ambas as conversões estiverem ocorrendo na mesma versão do SQL Server. A representação binária de um valor pode mudar de versão para versão do SQL Server.
Você pode converter int, smallint e tinyint em binário ou varbinary. Se converter o valor binário de volta para um valor inteiro, este valor é diferente do valor inteiro original se ocorrer truncamento. Por exemplo, a instrução SELECT a seguir mostra que o valor 123456 inteiro é armazenado como um binário 0x0001e240:
SELECT CAST( 123456 AS BINARY(4) );
No entanto, a instrução a seguir SELECT mostra que, se o destino binário for muito pequeno para manter o valor inteiro, os dígitos principais serão truncados silenciosamente para que o mesmo número seja armazenado como 0xe240:
SELECT CAST( 123456 AS BINARY(2) );
O lote a seguir mostra que esse truncamento silencioso pode afetar operações aritméticas sem gerar um erro:
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
O resultado final é 57921, não 123457.
Note
Não é garantido que as conversões entre qualquer tipo de dados e os tipos de dados binários sejam as mesmas entre as versões do SQL Server.