tsql - 如何关闭位掩码中的特定位?

标签 tsql

在 TSql 中,如何关闭位掩码中的特定位而不必检查该位是否已设置?

最佳答案

找到了!像这样使用 &~...

UPDATE MyTable SET
        MyBitmask = MyBitmask & ~128 -- 8th bit
    WHERE MyID = 123

~ 运算符翻转所有位(1s 变成 0s,0s 变成 1s)。只需将要翻转的值设置为要关闭的值,然后使用 & 安全地关闭一个特定的位,而无需检查该位是否已设置。

关于tsql - 如何关闭位掩码中的特定位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717725/

相关文章:

sql - 获取SQl Server 2008 R2中执行脚本的持续时间

sql - 先过滤还是先加入?

sql - 从表中检索第二大值

sql - 有类似 "table pointer"的东西吗?

sql - 插入临时表查询

sql-server - 是否有控制参数分配的 SQL Server Management Studio 选项?

sql-server - SSIS 阻塞事务问题

sql-server - 如何在 T-SQL 中从 XML 读取选项?

tsql - 满足 SQL Server 2008 第一天标准

sql-server - CASE 语句中随机生成的值返回 NULL