Ответ 1
Вы можете использовать побитовый оператор NOT:
update mytable set IsEditable = ~IsEditable
Как обновить столбец таблицы, чтобы вернуть его значение (установите true, если значение равно false и false для true! null остается null).
Пожалуйста, исключите решения, в которых используется case when
или IIF()
Мне нужно что-то вроде следующего
UPDATE mytable SET IsEditable = !IsEditable
Вы можете использовать побитовый оператор NOT:
update mytable set IsEditable = ~IsEditable
Просто используйте это:
UPDATE mytable SET IsEditable=IsEditable^1
Если вы хотите протестировать его:
SELECT CONVERT(bit,0)^1, CONVERT(bit,1)^1
В качестве математического решения вы можете использовать это
update mytable set IsEditable = 1 - IsEditable;
IsEditable = 0
=> 1 - IsEditable = 1
IsEditable = 1
=> 1 - IsEditable = 0
IsEditable = Null
=> 1 - IsEditable = Null