Aracılığıyla paylaş


SET_BIT (Transact SQL)

Şunlar için geçerlidir: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

SET_BIT, bit_offsettarafından tanımlanan bite göre expression_value uzaklığı döndürür. Bit değeri varsayılan olarak 1'dir veya bit_valuetarafından ayarlanır.

Transact-SQL söz dizimi kuralları

Sözdizimi

SET_BIT ( expression_value, bit_offset ) 
SET_BIT ( expression_value, bit_offset, bit_value )

Bağımsız değişken

expression_value

Büyük bir nesne (LOB) olmayan herhangi bir tamsayı veya ikili ifade.

bit_offset

Herhangi bir tamsayı.

Dönüş türleri

expression_valueile aynı tür.

bit_offset parametresi, ayarlayacak verilerin nbitini tanımlamak için kullanılır. Tamsayı türlerinde, 0bit en az önemli bittir. İkili türlerde, en sağdaki bayttaki en az önemli bit 0bittir.

bit_value bir tamsayı veya bit olabilir. Ancak, veri türü ne olursa olsun bit_value için tek geçerli değerler 1 ve 0'dır. bit_value 1 veya 0 veya null değilse SET_BIT hata oluşturur.

bit_offset negatifse veya veri türündeki son bitten büyükse SET_BIT hata oluşturur.

Açıklamalar

Bağlı sunucu veya geçici sorgular (OPENQUERY) içindeki bit işleme işlevleri için Dağıtılmış Sorgu işlevi desteklenmez.

Veritabanı Altyapısı'ndaki büyük nesne (LOB) veri türleri 8.000 bayt'ı aşan verileri depolayabilir. Bu veri türleri verileri satır taşması veri sayfasında depolar. LOB ayrıca, lob veri sayfalarına yapılan satır içi başvuruların metin veya görüntü işaretçisini kullanan ayrılmış LOB sayfa yapılarında veri depolayan veri türlerini de kapsar. Veri depolama hakkında daha fazla bilgi için Sayfaları ve kapsamlar mimarisi kılavuzuna bakın.

Bit işleme işlevleri tinyint, smallint, int, bigint, binary(n)ve varbinary(n) ) veri türleri üzerinde çalışır. varchar(max), nvarchar(max), varbinary(max), image, ntext, metin, xmlve ortak dil çalışma zamanı (CLR) BLOB türleri gibi büyük nesne (LOB) veri türleri desteklenmez.

Örnekler

A. Bir değeri değiştirmek için SET_BIT kullanma

Bu örnekte üçüncü bit (uzaklık 2, sıfır tabanlı dizin) 1olarak ayarlanıyor.

SELECT SET_BIT ( 0x00, 2 ) as VARBIN1;

Sonuç 0x04. Bunun nedeni, 0x000000dönüştürülmesidir. SET_BIT üçüncü bitini (uzaklık 2) 1 olarak değiştirerek 0100. Bu ikili değer daha sonra onaltılık gösterimde 4 olarak döndürülür.

B. Bir değeri özel bit_value değiştirmek için SET_BIT kullanma

Bu örnekte, bit_value varsayılan olarak 1 yerine 0 olarak ayarlanıyor.

SELECT SET_BIT ( 0xabcdef, 0, 0 ) as VARBIN2;

Sonuç 0xABCDEE. expression_value, 1010 1011 1100 1101 1110 1111olan ikili dosyaya dönüştürülür. SET_BIT ilk biti 0 olarak değiştirir ve sonuç onaltılık biçimde döndürülür.