Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do: 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
Funkcje manipulacji bitami, takie jak przenoszenie, pobieranie (pobieranie), ustawianie lub liczenie pojedynczych bitów w obrębie wartości całkowitej lub binarnej, pozwalają na szybsze przetwarzanie i przechowywanie danych niż pojedyncze bity.
Bit ma dwie wartości (1 lub 0, które reprezentują on lub off, lub true lub false).
Bajt składa się z sekwencji 8 bitów. Funkcje manipulacji bitami w SQL Server traktują "najbardziej lewy" bit w bajcie jako największy (najważniejszy). W funkcjach manipulacji bitami bity są numerowane od prawej do lewej, przy czym bit 0 to najbardziej prawy, najmniejszy, a bit 7 to najbardziej lewy i największy.
Na przykład ciąg binarny jest 00000111 dziesiętnym odpowiednikiem liczby 7. Można to obliczyć za pomocą potęg liczby 2 w następujący sposób:
00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)
W praktyce oznacza to, że podczas gdy SQL Server przechowuje 00000111tę wartość jako 11100000 (bajt-odwrócony), funkcje manipulacji bitami będą traktować ją tak, jakby była .
Patrząc na wiele bajtów, pierwszy bajt (czytany od lewej do prawej) jest największy.
Możesz użyć poniższych obrazów, aby zobrazować, jak funkcje manipulacji bitami SQL Servera interpretują wartości wyrażeń bitowych i bajtów oraz przesunięcia bitów.
int
smallint
Functions
W SQL Serverze dostępnych jest pięć funkcji do manipulowania bitami:
Wszystkie pięć funkcji jest przeznaczonych do pracy na typach danych tinyint, smallint, int, bigint, binarny(n) i varbinary(n).
Nie obsługiwane są następujące typy: varchar, nvarchar, image, ntext, text, xml oraz table.
Uwagi
W początkowej implementacji funkcjonalność Distributed Query dla funkcji manipulacji bitami w serwerze połączonym lub zapytaniach ad hoc (OPENQUERY) nie będzie obsługiwana.