Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
Функции поразрядной операции, такие как перемещение, извлечение (получение), установка или подсчет отдельных битов в целочисленном или двоичном значении, позволяют обрабатывать и хранить данные более эффективно, чем с отдельными битами.
Бит имеет два значения (1 или 0, которые представляют on, off, true или false).
Байт состоит из последовательности 8 битов. Функции поразрядной операции в SQL Server рассматривают "крайний левый" бит в байте как самый большой (самый значительный). Для функций поразрядной операции биты нумеруются справа налево, при этом бит 0 является крайним правым и наименьшим, а бит 7 — крайним левым и наибольшим.
Например, двоичная последовательность 00000111 является десятичным эквивалентом числа 7. Вы можете вычислить это с помощью полномочий 2 следующим образом:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
На практике это означает, что в то время как SQL Server сохраняет это значение как 11100000 (с обратными байтами), функции поразрядной операции будут рассматривать это как 00000111.
При просмотре нескольких байтов первый байт (чтение слева направо) является самым большим.
Указанные ниже изображения можно использовать для визуализации того, как функции поразрядной операции SQL Server интерпретируют значения битовых и байтовых выражений и смещения битов.
int
smallint
Функции
Имеется пять функций, доступных для управления битами в SQL Server:
Все пять функций предназначены для работы с типами данных tinyint, smallint, int, bigint, binary(n) и varbinary(n).
Следующие типы не поддерживаются: varchar, nvarchar, image, ntext, text, xml и table.
Замечания
В начальной реализации функциональность распределенных запросов для функций поразрядных операций на связанном сервере или в специальных запросах (OPENQUERY) не будет поддерживаться.