I am trying to write a query that gets table information from a SQL CE
database, ready to be put in c#, later to be exported to XML. I need one of the columns to be named 'IDENT' with a boolean value (to represent whether or not it is the identity column, obviously).
For this, I am checking if the AUTOINC_SEED column is null, as follows:
select isnull(AUTOINC_SEED) as IDENT from information_schema.columns
However, this returns TRUE for non-identity columns and FALSE for identity columns! Is there any way to reverse the boolean value inside the select statement?
Edit: I'm aware I could do a case statement to solve this particular problem, but it got me curious about inverting boolean (bit) values in SQL.
The carat (^) in SQL Server is the bitwise exclusive OR operator.
Since 1 ^ 1
equals 0, and 1 ^ 0
equals 1, you can just do:
SELECT (1 ^ [YourBitColumn]) as InverseBit
I don't have SQL CE handy either, but since SQL CE appears to have this, I believe the following query should do the trick:
select (1 ^ AUTOINC_SEED) as IDENT from information_schema.columns
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