Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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.