Обратное логическое (бит) значение в SQL CE select statement

Я пытаюсь написать запрос, который получает информацию о таблицах из SQL CE данных SQL CE , готовых к установке в c #, а затем для экспорта в XML. Мне нужен один из столбцов с именем «IDENT» с логическим значением (для представления, действительно ли это столбец идентичности).

Для этого я проверяю, имеет ли столбец AUTOINC_SEED значение NULL, как показано ниже:

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

Однако это возвращает TRUE для столбцов не идентичности и FALSE для столбцов идентификации! Есть ли способ изменить логическое значение внутри оператора select?

Редактирование: я знаю, что я мог бы сделать аргумент case для решения этой конкретной проблемы, но мне стало интересно, как инвертировать значения boolean (bit) в SQL.

Карат (^) в SQL Server является побитовым эксклюзивным оператором ИЛИ .

Поскольку 1 ^ 1 равно 0, а 1 ^ 0 равно 1, вы можете просто сделать:

 SELECT (1 ^ [YourBitColumn]) as InverseBit 

У меня также нет SQL CE, но, поскольку SQL CE, похоже, имеет это, я считаю, что следующий запрос должен сделать трюк:

 select (1 ^ AUTOINC_SEED) as IDENT from information_schema.columns