I have a bitmasked int field in my database. Usually I manage it through C# code, but now I need to flip a bit in the mask using T-SQL
How do I accomplish the following:
The bit I want to flip: 1 << 8 (256)
The mask value before I flip: 143
The mask value after I flip: 399
This can be done without the bit operators that's missing in T-SQL, right?
You can just flip the value of the bit field by prefixing it with ~ before it.
Bitmasking is an exercise of compiling multiple values that are normally represented in a number of data types to a single computer word. In a previous example, we used the binary data type to see how bit manipulation is represented visually.
Use XOR:
SELECT value ^ 256
So in your case, SELECT 143 ^ 256
will indeed return 399. If you want to pass in the exponent as well:
SELECT value ^ POWER(2, power)
TSql Bitwise operators can be found here and good article on how to use them is here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With