Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Типы двоичных данных фиксированной или переменной длины.
Arguments
Бинарный [ ( n ) ]
Двоичные данные фиксированной длины с длиной n байт, где n — значение от 1 до 8 000. Размер при хранении составляет n байт.
варбинарный [ ( n | max ) ]
Двоичные данные с переменной длиной. n может иметь значение от 1 до 8000. Значение max указывает, что максимальный размер при хранении составляет 2^31-1 байт. Размер хранения — это фактическая длина введенных данных плюс 2 байта. Введенные данные могут иметь размер 0 символов. В ANSI SQL синонимом для varbinary является binary varying.
Remarks
Если значение n в определении данных или инструкции объявления переменной не указано, длина по умолчанию равна 1. Если n не указан с CAST функцией, длина по умолчанию составляет 30.
| Тип данных | Применение |
|---|---|
| binary | Размер данных в столбце одинаков. |
| varbinary | Данные в столбце значительно различаются по размеру. |
| varbinary(max) | Длина элементов данных в столбце превышает 8000 байт. |
Преобразование двоичных и varbinary данных
При преобразовании данных из строкового типа данных в тип binary или varbinary разной длины SQL Server дополняет или усекает данные справа. Строковые типы данных:
- char
- varchar
- nchar
- nvarchar
- binary
- varbinary
- text
- ntext
- image
При преобразовании других типов данных в тип binary или varbinary данные дополняются или усекаются слева. Дополнение осуществляется шестнадцатеричными нулями.
Если для обмена данными лучше всего подходит тип binary, то другие типы данных удобнее всего будет преобразовать в binary и varbinary. В определенный момент вы можете преобразовать тип значения в двоичное значение достаточно большого размера, а затем преобразовать его обратно. Результатом этого преобразования всегда является одно и то же значение, если оба преобразования выполняются с использованием одной и той же версии SQL Server. Двоичное представление значения может меняться в зависимости от версии SQL Server.
Вы можете преобразовать тип данных int, smallint и tinyint в binary или varbinary. Если преобразовать бинарное значение обратно в целое число, оно отличается от исходного целочисленного значения, если бы произошло усечение. Например, в следующей инструкции SELECT показано, что целочисленное значение 123456 хранится как двоичное 0x0001e240:
SELECT CAST( 123456 AS BINARY(4) );
Однако в следующей инструкции SELECT показано, что если целевой тип binary слишком мал для хранения всего значения, то начальные цифры неявно усекаются и то же самое число хранится как 0xe240:
SELECT CAST( 123456 AS BINARY(2) );
В следующем пакете показано, что это необъявленное усечение может повлиять на арифметические операции без возникновения ошибки.
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
Окончательный результат — 57921, но не 123457.
Note
Преобразования любого типа данных в binary могут различаться в зависимости от версии SQL Server.